问题描述: Maven多模块开发, SSM框架改造成SpringBoot框架, 集成apollo时,读取不到apollo的配置.
因为是自己封装了PropertyPlaceholderConfigurer进行配置文件的读取:
/**
*获取到当前架包中资源文件夹下的Properties配置文件
*/
public class PropertyConfigurer extends PropertyPlaceholderConfigurer {
private static Map<String,String> ctxPropMap;
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException {
super.processProperties(beanFactoryToProcess, props);
ctxPropMap = new HashMap<String,String>(16);
for (Object key : props.keySet()){
String keyStr = key.toString();
String value = String.valueOf(props.get(keyStr));
ctxPropMap.put(keyStr,value);
}
}
/**
*获取注解
*@param name
*@return
*/
public static String getCtxProp(String name) {
return ctxPropMap.get(name);
}
}
所以需要将本地配置和apollo配置整合起来.
参考apollo github wiki - Java客户端使用指南3.2 Spring整合方式:
人家官方已经不推荐使用PropertyPlaceholderConfigurer, 推荐用PropertySourcesPlaceholderConfigurer.
难点是, 如何将apollo中的配置读取出来, 和本地配置整合在一起.
但是我知道, apollo的配置会加载到environment中, 于是我便注入environment.
@Autowired
ConfigurableEnvironment environment;
注入的environme