背景说明
当我们使用springboot开发时,有的时候需要打war包在外部tomcat部署,方便运维人员维护,但是修改配置文件后重新打包给运维的时候,又需要修改一些配置这样还是不方便维护。
在网上找了很多例子但是都是针对.properties文件,读取.yml文件会有问题,当我在看关于springboot加载yml文件时发现需要用到其他的类,YamlPropertiesFactoryBean和YamlMapFactoryBean。下面把读取外部.yml配置文件的方法贴出来。
自定义配置类实现EnvironmentPostProcessor接口
- EnvironmentPostProcessor是springboot支持动态读取文件的接口,实现EnvironmentPostProcessor接口覆写postProcessEnvironment方法
- 在postProcessEnvironment方法实现读取外部配置文件
- 使用YamlPropertiesFactoryBean来读取yml配置文件,getObject()方法可以获取Properties
首先我把springboot.yml配置文件放在tomcat目录的conf目录下(可以根据自己需求修改目录)
实现EnvironmentPostProcessor在方法中完成yml配置读取
public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Override
public void postProcessEnvironmen