-
大小: 56KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-10
- 語言: Java
- 標(biāo)簽: 多數(shù)據(jù)源??
資源簡(jiǎn)介
Spring+Mybatis+Atomikos實(shí)現(xiàn)JAVA初始化并控制多個(gè)數(shù)據(jù)源+分布式事務(wù)的一個(gè)DEMO,內(nèi)涵源代碼,以及一篇關(guān)于該內(nèi)容的博客

代碼片段和文件信息
/**
?*?Copyright?(c)?2015?-?2016?eya?Inc.
?*?All?rights?reserved.
?*/
package?com.eya.mt.datasource;
import?java.util.Map;
import?javax.sql.DataSource;
import?org.apache.commons.collections.MapUtils;
import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;
import?org.springframework.beans.BeansException;
import?org.springframework.context.ApplicationContext;
import?org.springframework.context.ApplicationContextAware;
import?org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
/**
?*?動(dòng)態(tài)數(shù)據(jù)源父類
?*?@create?ll
?*?@createDate?2017年3月27日?下午2:38:05
?*?@update?
?*?@updateDate?
?*/
public?abstract?class?AbstractDynamicDataSource?extends
??????????????????????????????????????????????????????????????????????AbstractRoutingDataSource
???????????????????????????????????????????????????????????????????????????????????????????????implements
???????????????????????????????????????????????????????????????????????????????????????????????ApplicationContextAware?{
????/**?日志?*/
????protected?Logger?logger?=?LoggerFactory.getLogger(getClass());
????/**?默認(rèn)的數(shù)據(jù)源KEY?*/
????//protected?static?final?String?DEFAULT_DATASOURCE_KEY?=?“defaultDataSource“;
????/**?數(shù)據(jù)源KEY-VALUE鍵值對(duì)?*/
????private?Mapject?object>?targetDataSources;
????/**?spring容器上下文?*/
????private?static?ApplicationContext?ctx;
????public?void?setApplicationContext(ApplicationContext?applicationContext)?throws?BeansException?{
????????ctx?=?applicationContext;
????}
????public?static?ApplicationContext?getApplicationContext()?{
????????return?ctx;
????}
????public?static?object?getBean(String?name)?{
????????return?ctx.getBean(name);
????}
????/**
?????*?@param?targetDataSources?the?targetDataSources?to?set
?????*/
????public?void?setTargetDataSources(Mapject?object>?targetDataSources)?{
????????this.targetDataSources?=?targetDataSources;
????????super.setTargetDataSources(targetDataSources);
????????//?afterPropertiesSet()方法調(diào)用時(shí)用來將targetDataSources的屬性寫入resolvedDataSources中的
????????super.afterPropertiesSet();
????}
????/**
?????*?@return?the?targetDataSources
?????*/
????public?Mapject?object>?getTargetDataSources()?{
????????return?this.targetDataSources;
????}
????/**
?????*?創(chuàng)建數(shù)據(jù)源
?????*?@param?driverClassName?數(shù)據(jù)庫驅(qū)動(dòng)名稱
?????*?@param?url?連接地址
?????*?@param?username?用戶名
?????*?@param?password?密碼
?????*?@return?數(shù)據(jù)源{@link?T}
?????*?@Author?:?ll.?create?at?2017年3月27日?下午2:44:34
?????*/
????public?abstract?T?createDataSource(String?driverClassName?String?url?String?username
???????????????????????????????????????String?password);
????/**
?????*?設(shè)置系統(tǒng)當(dāng)前使用的數(shù)據(jù)源
?????*?數(shù)據(jù)源為空或者為0時(shí),自動(dòng)切換至默認(rèn)數(shù)據(jù)源,即在配置文件中定義的默認(rèn)數(shù)據(jù)源
?????*?@see?org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource#determineCurrentLookupKey()
?????*/
????@Override
????protected?object?determineCurrentLookupKey()?{
????????logger.debug(“【設(shè)置系統(tǒng)當(dāng)前使用的數(shù)據(jù)源】“);
????????Mapject>?configMap?=?DBC
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1510??2017-07-27?15:22??mult-table-demo\.classpath
?????文件???????1224??2017-07-27?15:22??mult-table-demo\.project
?????文件????????575??2017-07-27?15:22??mult-table-demo\.settings\.jsdtscope
?????文件????????144??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.core.resources.prefs
?????文件????????430??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.jdt.core.prefs
?????文件?????????90??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.m2e.core.prefs
?????文件????????686??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.wst.common.component
?????文件????????252??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件?????????50??2017-07-27?15:22??mult-table-demo\.settings\org.eclipse.wst.validation.prefs
?????文件???????4264??2017-07-27?15:22??mult-table-demo\pom.xm
?????文件???????5294??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\datasource\AbstractDynamicDataSource.java
?????文件???????4516??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\datasource\AtomikosDynamicDataSource.java
?????文件???????1497??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\datasource\DBContextHolder.java
?????文件????????366??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\mydb\mapper\MyDbUserMapper.java
?????文件????????751??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\mydb\model\MyDbUser.java
?????文件????????814??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\mydb\service\MyDbUserService.java
?????文件????????390??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\otherdb\mapper\OtherDbStudentMapper.java
?????文件????????768??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\otherdb\model\OtherDbStudent.java
?????文件????????865??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\otherdb\service\OtherDbStudentService.java
?????文件???????2633??2017-07-27?15:22??mult-table-demo\src\main\java\com\eya\mt\utils\RandomUtil.java
?????文件????????965??2017-07-27?15:22??mult-table-demo\src\main\resources\applicationContext.xm
?????文件???????3550??2017-07-27?15:22??mult-table-demo\src\main\resources\jta.properties
?????文件???????1646??2017-07-27?15:22??mult-table-demo\src\main\resources\log4j.properties
?????文件????????586??2017-07-27?15:22??mult-table-demo\src\main\resources\mapper\mydb\MyDbUserMapper.xm
?????文件????????610??2017-07-27?15:22??mult-table-demo\src\main\resources\mapper\otherdb\OtherDbStudentMapper.xm
?????文件???????5077??2017-07-27?15:22??mult-table-demo\src\main\resources\spring-mybatis.xm
?????文件???????1167??2017-07-27?15:22??mult-table-demo\src\main\webapp\WEB-INF\web.xm
?????文件???????2416??2017-07-27?15:22??mult-table-demo\src\test\java\com\eay\test\MultDbTest.java
............此處省略115個(gè)文件信息
- 上一篇:jasper-el.jar包
- 下一篇:局域網(wǎng)聊天工具Java版
評(píng)論
共有 條評(píng)論