我在开发过程中使用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。
最佳答案
我知道你问过如何做到这一点,但答案是你不应该这样做。
相反,有一个 application.properties
、application-default.properties
application-dev.properties
等,并通过 args 切换配置文件到 JVM:例如-Dspring.profiles.active=dev
您还可以在测试时使用 @TestPropertySource
理想情况下,一切都应该在源代码管理中,这样就不会出现意外,例如你怎么知道你的服务器位置有哪些属性,哪些属性丢失了?如果开发人员引入新事物会怎样?
Spring Boot 已经为您提供了足够的方法来做到这一点。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
关于java - 如何在 Spring-Boot 的生产过程中覆盖 application.properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23563363/