2013-09-05 38 views
2

正在开发一个使用Spring和maven的大型项目。然而,将会部署不同的环境,例如开发,测试,分期和生产。弹簧属性文件配置和maven集成在不同的env

该项目对于不同的环境有很多不同的属性。

是否有任何优雅的方式来解决这种事情,所以我可以使用它作为模板并在其他项目中重用。

我想春天的功能,如配置文件,占位符等将被使用。

有没有什么好的教程或一些博客让我得到更好的解决方案?

回答

3

Maven的概念轮廓可以是您的朋友:

<profile> 
     <id>DEV</id> 
     <build> 
      <resources> 
       <resource> 
        <directory>src/test/dev-resources</directory> 
       </resource> 
       <resource> 
        <directory>src/main/dev-resources</directory> 
       </resource> 
      </resources> 
     </build> 
    </profile> 
    <profile> 
      <id>STAGING</id> 
      <build> 
       <resources> 
       <resource> 
        <directory>src/test/staging-resources</directory> 
       </resource> 
       <resource> 
        <directory>src/main/staging-resources</directory> 
       </resource> 
       </resources> 
      </build> 
    </profile> 

和运行所有你的Maven与“-P DEV”建立开发提出和“-P转移”分期提出的例子。

0

您可以使用属性configurer。事情是这样的:

<bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="ignoreResourceNotFound" value="true"/> 
    <property name="locations"> 
     <list> 
      <value>file:${catalina.home}/conf/your_props.properties</value> 
     </list> 
    </property> 
</bean> 

你可以把你的属性(在这种情况下Tomcat servlet容器)中使用的一些config目录下在每个不同的环境。

在这种情况下,属性存储在${catalina.home}/conf之下,其中catalina.home是指Tomcat的安装目录。