多个环境的单独属性文件

时间:2015-09-17 16:15:21

标签: java spring spring-mvc properties spring-boot

我正在尝试为prod和dev环境创建单独的属性文件。

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

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

根据我对the documentation以及网上许多其他参考资料的理解,将Environment作为environment.getProperty("")访问{" application-dev.properties&#34中的属性;应该加载。但是,我得到null,因为看起来Spring没有读取属性文件。

我也尝试在@PropertySource中定义这两个文件。执行此操作时,将拾取第二个定义的文件并返回相应的属性。 Spring没有根据活动配置文件选择文件。

我错过了什么吗?

我也通过一些SO问题遇到issue raised,但我不确定它是否引用同样的问题。

1 个答案:

答案 0 :(得分:3)

是的,所以你指向的文档来自Spring Boot项目。这与Spring Framework不同。如果您没有使用Spring Boot,-Dspring.profiles.active=dev将无法正常工作。

您有两种选择:

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