【发布时间】:2020-06-26 03:28:06
【问题描述】:
我使用 spring 配置文件来加载基于环境的配置,当使用 Autowired Environment 对象读取时,它似乎是环境特定值的附加值,Spring 还从 application.properties 传递值,同样在 spring 文档Profile-specific Properties 中提到也在这里answer,但由于以下限制,我无法更改为 application-default.properties。
对我来说问题/限制是我正在使用的部署平台(规则),对于所有环境,标识符将作为 JVM 参数传递,但对于生产它不会传递,如下所述
application-dev.properties --> DEV environment will pass this -Dspring.profiles.active=dev
application-qa.properties --> QA environment will pass this -Dspring.profiles.active=qa
application.properties --> PROD environment won't pass any argument
我现在拥有的选项是在 application.properties 中使用具有空值的键在其他环境特定的属性文件中(未使用事件)并在代码中处理,除此之外还有其他优雅的方式来处理而不更改应用程序.properties
【问题讨论】:
标签: java spring spring-boot spring-profiles