Spring MVC |加载特定于环境的属性文件

时间:2019-02-09 05:13:26

标签: spring spring-mvc properties production-environment

我正在处理Spring MVC项目(版本> 4.x)。这不是一个Spring Boot项目。 我需要一种机制,可以维护特定于环境的文件夹,例如“ DEV”,“ PROD”,“ UAT”等。这些文件夹中的每个文件夹都具有特定于该特定环境的属性。 我已将我的PropertiesPlaceholder配置为:

<context:property-placeholder
        location="classpath:application-default.properties, classpath:application-${env}.properties"
        ignore-unresolvable="true" />   

我的属性定义如下:

-src
 -main
  -Resources
   -Properties
    -application-dev.properties
    -application-prod.properties

我希望占位符$ {env}在运行时得到解析,以便propertyplaceholder只读取与该环境相关的属性。

我很想听听您的评论和最佳实践。在更高的环境中,我们将有一条Jenkins管道为我们进行构建。

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试根据配置文件更改属性文件。因此,您可以通过在web.xml文件中添加以下几行来做到这一点:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/app-config.xml</param-value>
</context-param>
<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value>
</context-param>

只需使用Spring允许的标准名称,它将选择适当的.properties文件。另外,您可以在启动应用程序时使用以下命令。作为参数传递的配置文件名称将在应用程序启动期间激活。

-Dspring.profiles.active=dev