我正在使用Spring Boot,并application.properties在开发过程中选择了一个数据库@Configuration @Profile("dev")。
application.properties
@Configuration @Profile("dev")
spring.profiles.active=dev spring.config.location=file:d:/application.properties
在生产期间,我想在应用程序上下文之外创建一个文件,该文件应该被加载,然后使用d:/application.properties激活不同的配置文件:
spring.profiles.active=production
结果:启动应用程序时,配置仍然是dev,因此不考虑生产属性文件的其他位置。我有什么想念的吗?
dev
弹簧靴1.1.0.BUILD-SNAPSHOT
注意:这个问题 不是 关于 tomcat的 。
我知道您问过如何做,但是答案是您不应该这样做。
取而代之的是,有一个application.properties,application-default.properties application- dev.properties等,并且经由ARGS切换配置文件到JVM:例如-Dspring.profiles.active=dev
application-default.properties
application- dev.properties
-Dspring.profiles.active=dev
您还可以在测试时使用 @TestPropertySource
@TestPropertySource
理想情况下,所有内容都应在源代码控制中,这样就不会让人感到意外,例如,您如何知道服务器位置的哪些属性以及丢失的属性?如果开发人员介绍新事物,会发生什么?
Spring Boot已经为您提供了足够的方法来完成此操作。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features- external-config.html