我們在開發的時候,經常會需要多種環境,比如開發環境,測試環境,生產環境的數據庫地址是不一樣的。sPRing mvc環境下如何配置呢?
在web.xml里面有個屬性,可以配置。
比如我們配置測試環境。
<context-param> <param-name>spring.profiles.active</param-name> <param-value>test</param-value> </context-param> 在spring xml配置文件這么配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:database.properties" /> </bean> <beans profile="prod"> <jee:jndi-lookup id="dataSource" jndi-name="${jpreTest.datasource}" resource-ref="true" /> <jee:jndi-lookup id="dataSource2" jndi-name="${jpreTest.datasource2}" resource-ref="true" /> </beans> <beans profile="test"> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jpreTest.connection.driver_class}" /> <property name="jdbcUrl" value="${jpreTest.connection.url}" /> <property name="user" value="${jpreTest.connection.username}" /> <property name="passWord" value="${jpreTest.connection.password}" /> <!-- 初始線程數 --> <property name="initialPoolSize" value="5" /> <!-- 最小線程數 --> <property name="minPoolSize" value="${jpreTest.minPoolSize}" /> <!-- 最大線程數 --> <property name="maxPoolSize" value="${jpreTest.maxPoolSize}" /> <!-- 空閑時間,單位秒 --> <property name="maxIdleTime" value="1200" /> <!-- 獲取連接失敗后該數據源將申明已斷開并永久關閉 --> <property name="breakAfterAcquireFailure" value="true" /> <!--每60秒檢查所有連接池中的空閑連接。Default: 0 --> <property name="idleConnectionTestPeriod" value="60"/> <!--如果設為true那么在取得連接的同時將校驗連接的有效性。Default: false --> <property name="testConnectionOnCheckin" value="true" /> <!-- 鏈接池耗盡時一次獲取的連接數 --> <property name="acquireIncrement" value="5" /> </bean> <bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jpreTest.connection.driver_class}" /> <property name="jdbcUrl" value="${jpreTest.connection.url2}" /> <property name="user" value="${jpreTest.connection.username2}" /> <property name="password" value="${jpreTest.connection.password2}" /> <!-- 初始線程數 --> <property name="initialPoolSize" value="5" /> <!-- 最小線程數 --> <property name="minPoolSize" value="${jpreTest.minPoolSize}" /> <!-- 最大線程數 --> <property name="maxPoolSize" value="${jpreTest.maxPoolSize}" /> <!-- 空閑時間,單位秒 --> <property name="maxIdleTime" value="1200" /> <!-- 獲取連接失敗后該數據源將申明已斷開并永久關閉 --> <property name="breakAfterAcquireFailure" value="true" /> <!--每60秒檢查所有連接池中的空閑連接。Default: 0 --> <property name="idleConnectionTestPeriod" value="60"/> <!--如果設為true那么在取得連接的同時將校驗連接的有效性。Default: false --> <property name="testConnectionOnCheckin" value="true" /> <!-- 鏈接池耗盡時一次獲取的連接數 --> <property name="acquireIncrement" value="5" /> </bean> </beans></beans>
新聞熱點
疑難解答