用于实现 项目部署在各个环境的配置切换。。无需手动去修改项目active配置。。也可以实现 获取远程配置文件,避免不同环境(开发、测试、生产)的配置切换
动态获取到配置文件信息
1、实现接口 EnvironmentPostProcessor
public class DynamicEnvironmentPostProcessor implements EnvironmentPostProcessor {
private static Logger logger = LoggerFactory.getLogger(DynamicEnvironmentPostProcessor.class);
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
try {
// 创建路径匹配对象
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
// 加载资源文件 使用通配符方式加载
Resource resource = resolver.getResource("classpath:config/config.properties");
// 创建properties
Properties properties = new Properties();
properties.load(resource.getInputStream());
// 追加配置
PropertiesPropertySource propertySource = new PropertiesPropertySource("config", properties);
environment.getPropertySources().addLast(propertySource);
}catch (Exception e){
logger.error("系统异常",e);
}
}
}
2、META-INF 下创建 spring.factories 文件,并添加内容
org.springframework.boot.env.EnvironmentPostProcessor=com.dongao.project.common.init.DynamicEnvironmentPostProcessor
3、在resources 文件下创建config/config.properties文件,写入自己所需要的变量