我需要根据环境(dev,qa或prod)选择属性上下文文件,这是PropertyPlaceholderConfigurer
的我的bean配置,
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:**/config/handsOn-${proj.env}.properties</value>
</property>
</bean>
那么我如何使spring框架根据部署的环境选择正确的文件。
我可以根据部署的主机获取环境。使用以下代码,
InetAddress.getLocalHost().getHostName()
任何帮助将不胜感激.. !!
答案 0 :(得分:2)
有几种方法可以做到这一点。
答案 1 :(得分:1)
最后,我可以使用maven配置文件根据环境打包所需的.properties。我在dev,qa和prod中使用了不同的配置文件,如下所示,
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dev-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<!-- this is important -->
<overwrite>true</overwrite>
<!-- target -->
<outputDirectory>${project.basedir}/WebContent/WEB-INF/config</outputDirectory>
<resources>
<resource>
<!-- source -->
<directory>${project.basedir}/WebContent/WEB-INF/config/dev</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>