Spring动态切换数据源(20170221)

Spring动态切换数据源(20170221)_第1张图片Spring动态切换数据源(20170221)_第2张图片Spring动态切换数据源(20170221)_第3张图片Spring动态切换数据源(20170221)_第4张图片Spring动态切换数据源(20170221)_第5张图片Spring动态切换数据源(20170221)_第6张图片Spring动态切换数据源(20170221)_第7张图片Spring动态切换数据源(20170221)_第8张图片

 


方法一:初始化预先定义的数据源切换(适用于c3p0dbcpdruid



 


  1. bean.xml配置文件:



2DynamicDataSource.java用来实现动态切换数据源,并通知容器。



 


3DataSourceContextHolder.java切换数据源。



 


4、在需要切换到数据源B的地方调用DAO前加上DataSourceContextHolder.setDataSourceType("DataSourceB");即可切换到B


 


方法二:在Web应用程序加载后,监听配置文件db.properties,一旦发生变化则设置DataSource使其更新数据库连接配置产生新的连接。(适用于dbcp


 


1、实现文件变化监听功能。(略)


参考:http://www.phpstudy.net/b.php/72659.html


 


  1. bean.xml配置文件:



 


3TdmsBasicDataSource.java



 


BasicDataSourcecreateDataSource方法会先判断dataSource属性是否为空,如果为空则通过driverClassName等配置属性重新产生一个dataSource


当监听到配置文件内容发生变化时,TdmsBasicDataSource.setChanged(true);


 


 


方法三:在Web应用程序加载后,监听配置文件db.properties,一旦发生变化则设置DataSource使其更新数据库连接配置产生新的连接。(适用于druid


 


1、实现文件变化监听功能。(略)


参考:http://www.phpstudy.net/b.php/72659.html


 


2bean.xml配置文件:



 


3SpringWiredBean.java获取当前Spring容器bean



 


4、更新数据源方法



 


 


 


 


 




你可能感兴趣的:(Spring动态切换数据源(20170221))