java - 多个环境的单独属性文件

标签 java spring spring-mvc properties spring-boot

我正在尝试为生产环境和开发环境准备单独的属性文件。

我有两个属性文件 application-prod.propertiesapplication-dev.properties 放在 classpath:/config

我添加了 VM 选项 -Dspring.profiles.active=dev

据我了解the documentation以及网络上的许多其他引用资料,在访问 Spring Environment 作为 environment.getProperty("") 时,应加载“application-dev.properties”中的属性。但是,我得到的是 null,似乎属性文件没有被 Spring 读取。

我还尝试在 @PropertySource 中定义这两个文件。这样做,第二个定义的文件被拾取并返回相应的属性。 Spring 不会根据 Activity 配置文件选择文件。

我错过了什么吗?

我还遇到了 issue raised通过一些SO问题,但我不确定它是否指的是同一个问题。

最佳答案

是的,所以您指向的文档来自 Spring Boot 项目。这与 Spring Framework 不同。如果您不使用 Spring Boot,-Dspring.profiles.active=dev 将不起作用。

你有两个选择:

  1. 将 Spring Boot 引入您的项目并开启自动配置(@SpringBootApplication@EnableAutoConfiguration)。
  2. 使用普通的 Spring Framework 功能,例如 PropertyPlaceholderConfigurer,但它不会为您提供与 Spring Boot 功能相同的灵 active ,您需要创建一些样板代码来处理各种环境。

关于java - 多个环境的单独属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32635215/

相关文章:

java - 是否可以像滚动日志那样实现滚动目录?

java - 如何在所有过滤器之前运行 PhaseListener?

java - 将 json 参数发布到 REST 服务时出错

java - 如何下载文件而不是在浏览器中打开?

mysql - @版本还是触发器?

java - JNI_CreateJavaVM() 每次我运行我的应用程序时都会失败(确切地说)

java - 简单的maven文件中发生Maven构建错误

java - Spring Cloud zuul/刷新抛出500错误

json - 如何使用 Spring RestTemplate 反序列化嵌套 JSON

java - 执行 "AbstractMethodError"构造函数时发生 "org.hibernate.internal.SessionFactoryImpl()"错误