尝试通过将war部署到tomcat容器,通过外部配置在Spring Boot应用程序中配置属性。
我的application.properties
文件保存在tomcat_folder/conf/myappname/application.properties
使用此属性文件加载一些aws配置和数据库详细信息,如spring.datasource.url
等,并希望将这些属性提供给整个应用程序,并且可以像@Value("${aws.access_key_id}")
我还通过添加参数更改了tomcat Context.xml
中的conf
文件:
<Parameter name="spring.config.location" value="${catalina.base}/conf/myappname/application.properties" />
我的主应用程序类看起来像:
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
在构建并部署war到webapps
文件夹后,当我启动服务器时,出现错误
Caused by: java.io.FileNotFoundException: class path resource [application.properties] cannot be opened because it does not exist
不确定还要配置什么。
答案 0 :(得分:0)
我已经测试了你的配置步骤,对我来说很好。
您可以使用其他方式测试您的配置:
application.properties
文件放入tomcat_folder/lib/application.properties
Context.xml
。 <Parameter name="spring.config.location"value="${catalina.base}/conf/myappname/application.properties" />
另外,您可以修改catalina.properties
shared.loader=${catalina.base}/conf/myappname/
将application.properties
文件保存在
tomcat_folder/conf/myappname/application.properties