如何在spring MVC中为不同的环境设置不同的上下文配置文件

时间:2012-10-18 13:47:54

标签: spring-mvc jdbctemplate applicationcontext

在我的本地机器上我正在使用某个db(sql server)进行开发,但是,当我部署到开发环境时,我们正在运行mysql。因此,每次部署之前,我都必须更改配置文件中的某些属性。与数据源有关的属性:

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb" />
    <property name="username" value="myuname" />
    <property name="password" value="mypwd"/>   
</bean>

有没有办法在spring mvc中为不同的环境提供不同的配置文件?如果是这样,我将如何为正确的环境触发正确的xml。

2 个答案:

答案 0 :(得分:1)

spring mvc to have different config files for different environments?
我们将数据库连接设置存储在tomcat的属性文件中,每个tomcat instalaltion都有自己特定的数据库连接。例如,本地开发盒连接到本地数据库服务器,UAT服务器连接到UAT ......等等。

然后在app环境中我们有:

<context:property-placeholder location="file:${catalina.home}/conf/database_UAT.properties"
                                  ignore-unresolvable="true"/>

所以app部署的地方决定了它的数据库连接。

答案 1 :(得分:0)

我认为只为这个要求配置不同的配置文件并不是一个好主意。 您应该在属性文件中使用两个不同的集合来外部化db配置,一个用于dev,另一个用于生产。然后在配置文件中使用spring EL来决定使用哪一个。

有关详细信息,请参阅spring EL documentation