SpringBoot应用程序具有在Tomcat下运行的多个application.properties

时间:2019-07-15 10:40:47

标签: java spring-boot tomcat8 application.properties

我的Spring Boot应用程序中需要两个application.properties。

我知道使用注释@PropertySource可以指定多个属性文件。

我尝试使用:@PropertySource({"classpath:application.properties","classpath:external.properties"})

其想法是使application.properties具有与机器无关的属性,并且该文件将包含在war文件中。

另一个文件(external.properties)将留在计算机中,并且不会包含在war文件中。在这里,我想保留数据库连接等属性。

我已经更改了catalina.properties,以将external.properties位置添加到类路径中,但是不幸的是,当在Eclipse上运行时,它不起作用(抱怨缺少的数据库属性。)。

1 个答案:

答案 0 :(得分:0)

如果外部属性文件在计算机上的已知位置可用,请设置环境变量,系统属性或命令行参数以及文件路径。然后,使用@PropertySource而非file:

引用classpath:批注中的文件

示例:@PropertySource("file:${CONF_DIR}/external.properties")

参考: Spring boot docs on external configuration

PropertySource documentation

Blog post regarding PropertySource