首页>代码>springboot+jta+atomikos实现两阶段提交分布式事务的管理>/quanxian-jta-atomikos/src/main/java/com/quanxian/jtaatomikos/demo/datasource/Slave1MybatisConfig.java
package com.quanxian.jtaatomikos.demo.datasource;

import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.mysql.cj.jdbc.MysqlXADataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

import javax.sql.DataSource;
import java.sql.SQLException;

/**
 * @program: alin-pro
 * @description: aaa
 * @author: Alin
 * @create: 2019-12-25 17:19
 **/
@Configuration
@MapperScan(basePackages = "com.quanxian.jtaatomikos.demo.mapper.slave1", sqlSessionTemplateRef = "slave1SqlSessionTemplate")
public class Slave1MybatisConfig {

    @Value("${spring.datasource.slave1.url}")
    private String url;
    @Value("${spring.datasource.slave1.username}")
    private String username;
    @Value("${spring.datasource.slave1.password}")
    private String password;
    @Value("${spring.datasource.slave1.driverClassName}")
    private String driverClassName;
    @Bean(name = "slave1MybatisDS")
    public DataSource DataSource() throws SQLException {
        MysqlXADataSource mysqlXaDataSource = new MysqlXADataSource();
        mysqlXaDataSource.setUrl(url);
        mysqlXaDataSource.setPassword(password);
        mysqlXaDataSource.setUser(username);

//        DruidXADataSource druidXADataSource=new DruidXADataSource();
//        druidXADataSource.setUrl(url);
//        druidXADataSource.setPassword(password);
//        druidXADataSource.setUsername(username);

        AtomikosDataSourceBean ds2 = new AtomikosDataSourceBean();
        ds2.setXaDataSource(mysqlXaDataSource);
        return ds2;
    }
    @Bean(name = "slave1SqlSessionFactory")
    public SqlSessionFactory SqlSessionFactory(@Qualifier("slave1MybatisDS") DataSource dataSource) throws Exception {
        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        Resource[] resources = new PathMatchingResourcePatternResolver()
                .getResources("classpath:mapper/slave1/*.xml");
        bean.setMapperLocations(resources);
        return bean.getObject();
    }

    @Bean(name = "slave1SqlSessionTemplate")
    public SqlSessionTemplate SqlSessionTemplate(@Qualifier("slave1SqlSessionFactory") SqlSessionFactory sqlSessionFactory)
            throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}
最近下载更多
醉code  LV17 2020年2月15日
15088605151@139.com  LV12 2020年1月26日
best2018  LV46 2020年1月14日
最代码官方  LV167 2020年1月8日
最近浏览更多
18247183292 2023年3月16日
暂无贡献等级
wy4525  LV6 2022年8月11日
lvzhuhen 2022年6月21日
暂无贡献等级
wwb521  LV7 2022年6月15日
CCG542517  LV6 2022年3月11日
er12345 2022年3月11日
暂无贡献等级
小碗的程序员之路 2022年1月17日
暂无贡献等级
1474391636  LV7 2021年12月16日
lys122519 2021年12月3日
暂无贡献等级
weienqing  LV17 2021年11月10日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友