【发布时间】:2014-06-27 02:52:39
【问题描述】:
我正在使用spring boot和application.properties在@Configuration @Profile("dev")开发期间选择数据库。
spring.profiles.active=dev
spring.config.location=file:d:/application.properties
在生产期间,我想在应用程序上下文之外创建一个应该加载的文件,然后使用 d:/application.properties:激活不同的配置文件:
spring.profiles.active=production
结果:当我启动应用程序时,配置仍然是dev,所以不知何故没有考虑生产属性文件的附加位置。我错过了什么吗?
spring boot 1.1.0.BUILD-SNAPSHOT
注意:这个问题不是关于 tomcat。
【问题讨论】:
-
我会反过来做,为生产配置并为开发/测试覆盖。如果我没记错的话,
spring.config.location只能从命令行设置,不能从属性文件中设置。 -
spring.config.location 可以从任何受支持的属性源进行配置,而不仅仅是命令行
-
Spring 还支持 ProertyPlacholder 机制吗?如果是这样,您可能想调查一下。
-
您发布的配置有效,Spring Boot没有问题。您必须有其他不起作用的东西,或者您可能忽略了项目中的某些内容。如何检查某个配置文件是否已加载,而不是另一个?
-
您的项目的其他目录中是否还有其他
application.properties文件?
标签: java spring spring-boot