Commit ffed9f21 by qiuweili123

Merge branch 'feature_protocol' of http://gitlab.secoo.com:8090/mall/arch/matrix

parents aa2e1889 c3af0325
...@@ -20,6 +20,10 @@ public interface DataSourceConstant { ...@@ -20,6 +20,10 @@ public interface DataSourceConstant {
*/ */
String DB_NAMESPACE = "arch.db_config"; String DB_NAMESPACE = "arch.db_config";
/** /**
* 阿波罗应用配置命名空间
*/
String APP_NAMESPACE = "application";
/**
* 属性配置分割符 * 属性配置分割符
*/ */
String PROPETY_SPLIT_CHAR = "\\."; String PROPETY_SPLIT_CHAR = "\\.";
......
...@@ -16,14 +16,17 @@ import java.util.Map; ...@@ -16,14 +16,17 @@ import java.util.Map;
public abstract class AbsDataSourceProvider<T extends MatrixDataSourceConfig> implements DataSourceProvider { public abstract class AbsDataSourceProvider<T extends MatrixDataSourceConfig> implements DataSourceProvider {
private Encryptor<String> encryptor = EncryptorFactory.getInstance().getEncryptor();
private Encryptor<String> encryptor;
@Resource @Resource
private DataSourceFactory dataSourceFactory; private DataSourceFactory dataSourceFactory;
private Class<T> entryClass; private Class<T> entryClass;
public AbsDataSourceProvider() { public AbsDataSourceProvider() {
initEnvProperties();
entryClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; entryClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
encryptor = EncryptorFactory.getInstance().getEncryptor();
} }
...@@ -57,5 +60,10 @@ public abstract class AbsDataSourceProvider<T extends MatrixDataSourceConfig> im ...@@ -57,5 +60,10 @@ public abstract class AbsDataSourceProvider<T extends MatrixDataSourceConfig> im
protected abstract List<T> getDataSourceProperties(); protected abstract List<T> getDataSourceProperties();
/**
* 配置accessToken等信息
*/
protected abstract void initEnvProperties();
} }
...@@ -10,6 +10,7 @@ import com.secoo.mall.datasource.config.MatrixDataSourceConfig; ...@@ -10,6 +10,7 @@ import com.secoo.mall.datasource.config.MatrixDataSourceConfig;
import com.secoo.mall.datasource.constant.DataSourceConstant; import com.secoo.mall.datasource.constant.DataSourceConstant;
import com.secoo.mall.datasource.errorcode.DataSourceError; import com.secoo.mall.datasource.errorcode.DataSourceError;
import com.secoo.mall.datasource.properties.MatrixDataSourceProperties; import com.secoo.mall.datasource.properties.MatrixDataSourceProperties;
import com.secoo.mall.datasource.util.SysUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.reflect.MethodUtils; import org.apache.commons.lang3.reflect.MethodUtils;
...@@ -25,10 +26,6 @@ import java.util.stream.Collectors; ...@@ -25,10 +26,6 @@ import java.util.stream.Collectors;
*/ */
@Slf4j @Slf4j
public class ApolloDataSourceProvider<T extends MatrixDataSourceConfig> extends AbsDataSourceProvider<T> { public class ApolloDataSourceProvider<T extends MatrixDataSourceConfig> extends AbsDataSourceProvider<T> {
/*
*/
/** /**
* 从appollo加载配置信息 * 从appollo加载配置信息
* *
...@@ -73,4 +70,11 @@ public class ApolloDataSourceProvider<T extends MatrixDataSourceConfig> extends ...@@ -73,4 +70,11 @@ public class ApolloDataSourceProvider<T extends MatrixDataSourceConfig> extends
return list; return list;
} }
@Override
protected void initEnvProperties() {
Config appConfig = ConfigService.getConfig(DataSourceConstant.APP_NAMESPACE);
String acccessToken = appConfig.getProperty("config.app.security.accessToken", "default");
SysUtil.setProperty("accessToken", acccessToken);
}
} }
...@@ -21,4 +21,9 @@ public class DefaultDataSourceProvider extends AbsDataSourceProvider<MatrixDataS ...@@ -21,4 +21,9 @@ public class DefaultDataSourceProvider extends AbsDataSourceProvider<MatrixDataS
return this.dataSourceConfigs; return this.dataSourceConfigs;
} }
@Override
protected void initEnvProperties() {
}
} }
...@@ -50,14 +50,9 @@ public class MatrixMybatisAutoConfiguration { ...@@ -50,14 +50,9 @@ public class MatrixMybatisAutoConfiguration {
log.info("Init MatrixDataSouceAutoConfiguration"); log.info("Init MatrixDataSouceAutoConfiguration");
} }
@Value("${config.app.security.accessToken:jp32mbwQkxrygEAjNRsi}")
private String acccessToken;
@Bean @Bean
@ConditionalOnMissingBean(DataSourceProvider.class) @ConditionalOnMissingBean(DataSourceProvider.class)
public DataSourceProvider dataSourceProvider() { public DataSourceProvider dataSourceProvider() {
SysUtil.setProperty("accessToken", acccessToken);
return new ApolloDruidDataSourceProvider(); return new ApolloDruidDataSourceProvider();
} }
......
package com.secoo.mall.web.config; package com.secoo.mall.web.config;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.alibaba.fastjson.support.config.FastJsonConfig; import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
...@@ -9,6 +11,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -9,6 +11,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter;
import java.math.BigInteger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -21,6 +24,13 @@ public class WebConfig { ...@@ -21,6 +24,13 @@ public class WebConfig {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig(); FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue); fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
//解决Long转json精度丢失的问题
SerializeConfig serializeConfig = SerializeConfig.globalInstance;
serializeConfig.put(BigInteger.class, ToStringSerializer.instance);
serializeConfig.put(Long.class, ToStringSerializer.instance);
serializeConfig.put(Long.TYPE, ToStringSerializer.instance);
fastJsonConfig.setSerializeConfig(serializeConfig);
//处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>(); List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes); fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment