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 {
*/
String DB_NAMESPACE = "arch.db_config";
/**
* 阿波罗应用配置命名空间
*/
String APP_NAMESPACE = "application";
/**
* 属性配置分割符
*/
String PROPETY_SPLIT_CHAR = "\\.";
......
......@@ -16,14 +16,17 @@ import java.util.Map;
public abstract class AbsDataSourceProvider<T extends MatrixDataSourceConfig> implements DataSourceProvider {
private Encryptor<String> encryptor = EncryptorFactory.getInstance().getEncryptor();
private Encryptor<String> encryptor;
@Resource
private DataSourceFactory dataSourceFactory;
private Class<T> entryClass;
public AbsDataSourceProvider() {
initEnvProperties();
entryClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
encryptor = EncryptorFactory.getInstance().getEncryptor();
}
......@@ -57,5 +60,10 @@ public abstract class AbsDataSourceProvider<T extends MatrixDataSourceConfig> im
protected abstract List<T> getDataSourceProperties();
/**
* 配置accessToken等信息
*/
protected abstract void initEnvProperties();
}
......@@ -10,6 +10,7 @@ import com.secoo.mall.datasource.config.MatrixDataSourceConfig;
import com.secoo.mall.datasource.constant.DataSourceConstant;
import com.secoo.mall.datasource.errorcode.DataSourceError;
import com.secoo.mall.datasource.properties.MatrixDataSourceProperties;
import com.secoo.mall.datasource.util.SysUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.reflect.MethodUtils;
......@@ -25,10 +26,6 @@ import java.util.stream.Collectors;
*/
@Slf4j
public class ApolloDataSourceProvider<T extends MatrixDataSourceConfig> extends AbsDataSourceProvider<T> {
/*
*/
/**
* 从appollo加载配置信息
*
......@@ -73,4 +70,11 @@ public class ApolloDataSourceProvider<T extends MatrixDataSourceConfig> extends
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
return this.dataSourceConfigs;
}
@Override
protected void initEnvProperties() {
}
}
......@@ -50,14 +50,9 @@ public class MatrixMybatisAutoConfiguration {
log.info("Init MatrixDataSouceAutoConfiguration");
}
@Value("${config.app.security.accessToken:jp32mbwQkxrygEAjNRsi}")
private String acccessToken;
@Bean
@ConditionalOnMissingBean(DataSourceProvider.class)
public DataSourceProvider dataSourceProvider() {
SysUtil.setProperty("accessToken", acccessToken);
return new ApolloDruidDataSourceProvider();
}
......
package com.secoo.mall.web.config;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ToStringSerializer;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
......@@ -9,6 +11,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
......@@ -21,6 +24,13 @@ public class WebConfig {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
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<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
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