java - 属性(property)选址环境设置

标签 java spring

我正在使用属性文件配置我的 Spring 应用程序。但我必须在开发和生产属性文件之间进行切换。目前我有这个代码片段

@Configuration
@PropertySource(value = "classpath:config/simulator.properties", ignoreResourceNotFound = false)
public class AppConfiguration

但我想要一些 value = "classpath:${env:local}/simulator.properties"

这意味着如果我没有设置环境变量 env,那么它必须指向 local/simulator.properties,否则如果环境 env 变量指向 production,则位置必须是 production/simulator.properties。

所以,本地是后备环境。

有什么办法可以实现这一点吗?我不想使用配置文件,它必须由环境变量控制

我不想为配置文件设置 -D 选项

谢谢

约翰

最佳答案

您可以使用多个@PropertySource注释,如果找到第一个文件和第二个文件,并且两个文件中的键匹配,则将采用后一个文件。请查看here

@PropertySource(value="classpath:local/simulator.properties",ignoreResourceNotFound=true)
@PropertySource(value="classpath:${env.production}/simulator.properties",ignoreResourceNotFound=true)

关于java - 属性(property)选址环境设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45934815/

相关文章:

java - 在GWT中添加html和java脚本代码

java - 将war部署到tomcat配置问题

java - 在邮件通知中显示环境 Spring Boot Admin

Spring Data + QueryDSL空谓词+谓词链接

java - eclipse 中的文件路径错误? (Java 之春)

java - 无法在 Spring Boot 测试中解析 SpringApplicationConfiguration

java - 在java中使用split函数,分隔符为 '|'字符(OR符号)

java - 如何使用java上传和流式传输Flash视频?

java - SetAlignment 方法在带有组合框的 FlowLayout 中不起作用

java - 在 Spring Boot 中为 Undertow 启用 HTTP 2.0