本来application.yml是放在spring boot项目的resource中。但是实际使用中,多个项目共同使用一个application.yml文件,所以就把application.yml配置文件放到了tomcat下,项目启动的时候指向tomcat就行,
代码如下
public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {
@Override
public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
//tomcat路径
String property = System.getProperty("catalina.home");
String path = property + File.separator + "conf" + File.separator + "application.yml";
//Springboot读取yml配置
YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
yaml.setResources(new FileSystemResource(path));
MutablePropertySources propertySources = environment.getPropertySources();
propertySources.addFirst(new PropertiesPropertySource("Config", yaml.getObject()));
}
}
在resources下创建META-INF文件夹,然后创建spring.factories文件,代码为
org.springframework.boot.env.EnvironmentPostProcessor=com.**.**.config.MyEnvironmentPostProcessor
路径自定义,不要放到根目录下。
以上配置即可多个项目使用同一个配置文件启动。