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 - JVM Attach API 虚拟机。 "Attach"是什么意思?

java - Spring MongoDB 使用带有元组数组的 $in 查询不同的字段

java - Spring liquibase自定义ImplicitNamingStrategy

java - 使用 spring security 进行 session 管理

java - Spring - 将@Bean添加到没有名称属性的字符串

java - 如何使用自己的数据库用户使用 spring security 和 JWT 进行身份验证

Java 多线程 - 有没有办法同步/锁定映射中的特定值以进行读取和写入?

java - Graphics2D JPanel 显示但按钮不显示?

java - 这段代码没有任何反应。为什么?

java - Neo4j UniqueNodeFactory.getOrCreate(key, value) 永远不会返回