Spring 启动 - 将 .properties 文件部署到不同于 'WEB-INF/classes' 的文件夹
Spring Boot - deploy .properties file to a folder different than 'WEB-INF/classes'
我正在尝试将传统的 Tomcat Spring MVC webapp 转换为 Spring Boot。新应用程序仍应使用 .war deployment.
出于各种原因,我强制要求 application.properties
文件位于已部署应用程序的 WEB-INF/conf
文件夹中,而不是位于 Spring 的 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 引导方式是什么?
我尝试添加以下各项:
spring.config.location=WEB-INF/conf/application.properties
但是我的 application.properties
文件仍然没有加载。
最终起作用的是以下 @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
没有同样的效果。
我正在尝试将传统的 Tomcat Spring MVC webapp 转换为 Spring Boot。新应用程序仍应使用 .war deployment.
出于各种原因,我强制要求 application.properties
文件位于已部署应用程序的 WEB-INF/conf
文件夹中,而不是位于 Spring 的 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 引导方式是什么?
我尝试添加以下各项:
spring.config.location=WEB-INF/conf/application.properties
但是我的 application.properties
文件仍然没有加载。
最终起作用的是以下 @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
没有同样的效果。