<p>首先定义两个可以切换的数据源</p>
<p><bean id="dataSource"<br> class="org.apache.commons.dbcp.BasicDataSource"<br> destroy-method="close"><br> <property name="driverClassName"<br> value="oracle.jdbc.driver.OracleDriver" /><br><br> <property name="url" value="${jdbc.url}" /><br> <property name="username" value="${jdbc.username}" /><br> <property name="password" value="${jdbc.password}" /><br> </bean></p>
<p> </p>
<p><bean id="dataSource1"<br> class="org.apache.commons.dbcp.BasicDataSource"<br> destroy-method="close"><br> <property name="driverClassName" value="com.mysql.jdbc.Driver" /><br> <property name="url" value="${jdbc.url1}"/><br> <property name="username" value="${jdbc.username1}" /><br> <property name="password" value="${jdbc.password1}" /><br> </bean></p>
<p> </p>
<p> </p>
<p>2.定义spring 代理 </p>
<p> </p>
<p><bean id="swapper" class="org.springframework.aop.target.HotSwappableTargetSource"><br> <constructor-arg><ref local="dataSource"/></constructor-arg><br> </bean><br> <br> <bean id="swappableDataSource" class="org.springframework.aop.framework.ProxyFactoryBean"><br> <property name="targetSource"><br> <ref local="swapper"/><br> </property><br></bean></p>
<p> </p>
<p>3. 注入datasource</p>
<p> <bean id="testdao"<br> class="com.coolhong.test.dao.testdaoibatis"><br> <property name="dataSource" ref="swappableDataSource" /><br> </bean></p>
<p> </p>
<p>4. 切换datasource代码:</p>
<p> </p>
<p> HotSwappableTargetSource swapper = (HotSwappableTargetSource) ctx.getBean("swapper");<br> Object newTarget = ctx.getBean("dataSource1");<br> swapper.swap(newTarget);</p>
<p> </p>
<p>这个时候datasource 就自动切换到datasource1</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>第一次回复 ,如果有什么错误的地方 请指正</p>
<p> </p>
<p> </p>
<p> </p>
<p><bean id="dataSource"<br> class="org.apache.commons.dbcp.BasicDataSource"<br> destroy-method="close"><br> <property name="driverClassName"<br> value="oracle.jdbc.driver.OracleDriver" /><br><br> <property name="url" value="${jdbc.url}" /><br> <property name="username" value="${jdbc.username}" /><br> <property name="password" value="${jdbc.password}" /><br> </bean></p>
<p> </p>
<p><bean id="dataSource1"<br> class="org.apache.commons.dbcp.BasicDataSource"<br> destroy-method="close"><br> <property name="driverClassName" value="com.mysql.jdbc.Driver" /><br> <property name="url" value="${jdbc.url1}"/><br> <property name="username" value="${jdbc.username1}" /><br> <property name="password" value="${jdbc.password1}" /><br> </bean></p>
<p> </p>
<p> </p>
<p>2.定义spring 代理 </p>
<p> </p>
<p><bean id="swapper" class="org.springframework.aop.target.HotSwappableTargetSource"><br> <constructor-arg><ref local="dataSource"/></constructor-arg><br> </bean><br> <br> <bean id="swappableDataSource" class="org.springframework.aop.framework.ProxyFactoryBean"><br> <property name="targetSource"><br> <ref local="swapper"/><br> </property><br></bean></p>
<p> </p>
<p>3. 注入datasource</p>
<p> <bean id="testdao"<br> class="com.coolhong.test.dao.testdaoibatis"><br> <property name="dataSource" ref="swappableDataSource" /><br> </bean></p>
<p> </p>
<p>4. 切换datasource代码:</p>
<p> </p>
<p> HotSwappableTargetSource swapper = (HotSwappableTargetSource) ctx.getBean("swapper");<br> Object newTarget = ctx.getBean("dataSource1");<br> swapper.swap(newTarget);</p>
<p> </p>
<p>这个时候datasource 就自动切换到datasource1</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>第一次回复 ,如果有什么错误的地方 请指正</p>
<p> </p>
<p> </p>
<p> </p>