Commit c3af0325 by qiuweili123

优化配置

parent d7ad3d84
...@@ -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();
} }
......
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