我正在尝试将传统的Tomcat Spring MVC webapp转换为Spring Boot。新应用程序仍应使用.war部署。
由于各种原因,我强制要求application.properties
文件位于已部署应用程序中的WEB-INF/conf
文件夹内,而不是默认情况下Spring Boot放置的WEB-INF/classes
文件夹内。
在原始的webapp中,我可以将application.properties
文件放在src/main/webapp/WEB-INF/conf
文件夹中(这样它们就会被复制到已部署的应用程序中的WEB-INF/conf
),然后像这样使用它:
<context:property-placeholder location="/WEB-INF/conf/application.properties"/>
引用此位置的Spring Boot方式是什么?
我尝试添加以下各项:
spring.config.location=WEB-INF/conf/application.properties
但我的application.properties
文件仍未加载。
答案 0 :(得分:0)
最终起作用的是以下@PropertySource
注释。
@SpringBootApplication
@PropertySource(value = {"WEB-INF/conf/application.properties"})
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
似乎未在路径开头指定classpath:
或file:
使其使用相对于webapp的路径。
我仍然不确定为什么要指定
spring.config.location=WEB-INF/conf/application.properties
没有同样的效果。