• 大小: 56KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Java
  • 标签: 多数据源  

资源简介

Spring+Mybatis+Atomikos实现JAVA初始化并控制多个数据源+分布式事务的一个DEMO,内涵源代码,以及一篇关于该内容的博客

资源截图

代码片段和文件信息

/**
 * 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;

/**
 * 动态数据源父类
 * @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());
    /** 默认的数据源KEY */
    //protected static final String DEFAULT_DATASOURCE_KEY = “defaultDataSource“;

    /** 数据源KEY-VALUE键值对 */
    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()方法调用时用来将targetDataSources的属性写入resolvedDataSources中的
        super.afterPropertiesSet();
    }

    /**
     * @return the targetDataSources
     */
    public Mapject object> getTargetDataSources() {
        return this.targetDataSources;
    }

    /**
     * 创建数据源
     * @param driverClassName 数据库驱动名称
     * @param url 连接地址
     * @param username 用户名
     * @param password 密码
     * @return 数据源{@link T}
     * @Author : ll. create at 2017年3月27日 下午2:44:34
     */
    public abstract T createDataSource(String driverClassName String url String username
                                       String password);

    /**
     * 设置系统当前使用的数据源
     * 

数据源为空或者为0时,自动切换至默认数据源,即在配置文件中定义的默认数据源
     * @see org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource#determineCurrentLookupKey()
     */
    @Override
    protected object determineCurrentLookupKey() {
        logger.debug(“【设置系统当前使用的数据源】“);
        Mapject> configMap = DBC


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       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.xml

     文件         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.xml

     文件       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.xml

     文件       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.xml

     文件        610  2017-07-27 15:22  mult-table-demo\src\main\resources\mapper\otherdb\OtherDbStudentMapper.xml

     文件       5077  2017-07-27 15:22  mult-table-demo\src\main\resources\spring-mybatis.xml

     文件       1167  2017-07-27 15:22  mult-table-demo\src\main\webapp\WEB-INF\web.xml

     文件       2416  2017-07-27 15:22  mult-table-demo\src\test\java\com\eay\test\MultDbTest.java

............此处省略115个文件信息

评论

共有 条评论

相关资源