日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SpringBoot使用Atomikos技術整合多數據源的實現

瀏覽:165日期:2023-03-22 09:27:42

Atomikos是一個為Java平臺提供增值服務的并且開源類事務管理器,如果將事務統一注冊到Atomikos中,則可以統一管理。常用于后臺管理系統的多數據庫操作。

多數據源的劃分方式

方式: a、按包名 b、按注解區分Springboot默認集成事務,只主要在方法上加上@Transactional即可,不需要開啟@EnableTransactionManagement注解如果多個數據庫,則每個方法都需要單獨設置事務管理器@Transactional(transactionManager = 'test2TransactionManager'),如果事務中含多數據源則無效。

Atomikos使用

1.依賴引入

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jta-atomikos</artifactId></dependency>

2.多數據源配置文件

# Mysql 1mysql.datasource.test1.url = jdbc:mysql://localhost:3306/test01?useUnicode=true&characterEncoding=utf-8mysql.datasource.test1.username = rootmysql.datasource.test1.password = rootmysql.datasource.test1.minPoolSize = 3mysql.datasource.test1.maxPoolSize = 25mysql.datasource.test1.maxLifetime = 20000mysql.datasource.test1.borrowConnectionTimeout = 30mysql.datasource.test1.loginTimeout = 30mysql.datasource.test1.maintenanceInterval = 60mysql.datasource.test1.maxIdleTime = 60# Mysql 2mysql.datasource.test2.url =jdbc:mysql://localhost:3306/test02?useUnicode=true&characterEncoding=utf-8mysql.datasource.test2.username =rootmysql.datasource.test2.password =rootmysql.datasource.test2.minPoolSize = 3mysql.datasource.test2.maxPoolSize = 25mysql.datasource.test2.maxLifetime = 20000mysql.datasource.test2.borrowConnectionTimeout = 30mysql.datasource.test2.loginTimeout = 30mysql.datasource.test2.maintenanceInterval = 60mysql.datasource.test2.maxIdleTime = 60

3.配置代碼

@Data@ConfigurationProperties(prefix = 'mysql.datasource.test1')public class DBConfig1 { private String url; private String username; private String password; private int minPoolSize; private int maxPoolSize; private int maxLifetime; private int borrowConnectionTimeout; private int loginTimeout; private int maintenanceInterval; private int maxIdleTime; private String testQuery;}@Data@ConfigurationProperties(prefix = 'mysql.datasource.test2')public class DBConfig2 { private String url; private String username; private String password; private int minPoolSize; private int maxPoolSize; private int maxLifetime; private int borrowConnectionTimeout; private int loginTimeout; private int maintenanceInterval; private int maxIdleTime; private String testQuery;}@Configuration// basePackages 最好分開配置 如果放在同一個文件夾可能會報錯@MapperScan(basePackages = 'com.itmayiedu.test01', sqlSessionTemplateRef = 'testSqlSessionTemplate')public class MyBatisConfig1 { // 配置數據源 @Primary @Bean(name = 'testDataSource') public DataSource testDataSource(DBConfig1 testConfig) throws SQLException { MysqlXADataSource mysqlXaDataSource = new MysqlXADataSource(); mysqlXaDataSource.setUrl(testConfig.getUrl()); mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true); mysqlXaDataSource.setPassword(testConfig.getPassword()); mysqlXaDataSource.setUser(testConfig.getUsername()); mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true); AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean(); xaDataSource.setXaDataSource(mysqlXaDataSource); xaDataSource.setUniqueResourceName('testDataSource'); xaDataSource.setMinPoolSize(testConfig.getMinPoolSize()); xaDataSource.setMaxPoolSize(testConfig.getMaxPoolSize()); xaDataSource.setMaxLifetime(testConfig.getMaxLifetime()); xaDataSource.setBorrowConnectionTimeout(testConfig.getBorrowConnectionTimeout()); xaDataSource.setLoginTimeout(testConfig.getLoginTimeout()); xaDataSource.setMaintenanceInterval(testConfig.getMaintenanceInterval()); xaDataSource.setMaxIdleTime(testConfig.getMaxIdleTime()); xaDataSource.setTestQuery(testConfig.getTestQuery()); return xaDataSource; } @Primary @Bean(name = 'testSqlSessionFactory') public SqlSessionFactory testSqlSessionFactory(@Qualifier('testDataSource') DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); return bean.getObject(); } @Primary @Bean(name = 'testSqlSessionTemplate') public SqlSessionTemplate testSqlSessionTemplate( @Qualifier('testSqlSessionFactory') SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); }}@Configuration@MapperScan(basePackages = 'com.itmayiedu.test02', sqlSessionTemplateRef = 'test2SqlSessionTemplate')public class MyBatisConfig2 { // 配置數據源 @Bean(name = 'test2DataSource') public DataSource testDataSource(DBConfig2 testConfig) throws SQLException { MysqlXADataSource mysqlXaDataSource = new MysqlXADataSource(); mysqlXaDataSource.setUrl(testConfig.getUrl()); mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true); mysqlXaDataSource.setPassword(testConfig.getPassword()); mysqlXaDataSource.setUser(testConfig.getUsername()); mysqlXaDataSource.setPinGlobalTxToPhysicalConnection(true); AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean(); xaDataSource.setXaDataSource(mysqlXaDataSource); xaDataSource.setUniqueResourceName('test2DataSource'); xaDataSource.setMinPoolSize(testConfig.getMinPoolSize()); xaDataSource.setMaxPoolSize(testConfig.getMaxPoolSize()); xaDataSource.setMaxLifetime(testConfig.getMaxLifetime()); xaDataSource.setBorrowConnectionTimeout(testConfig.getBorrowConnectionTimeout()); xaDataSource.setLoginTimeout(testConfig.getLoginTimeout()); xaDataSource.setMaintenanceInterval(testConfig.getMaintenanceInterval()); xaDataSource.setMaxIdleTime(testConfig.getMaxIdleTime()); xaDataSource.setTestQuery(testConfig.getTestQuery()); return xaDataSource; } @Bean(name = 'test2SqlSessionFactory') public SqlSessionFactory testSqlSessionFactory(@Qualifier('test2DataSource') DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); return bean.getObject(); } @Bean(name = 'test2SqlSessionTemplate') public SqlSessionTemplate testSqlSessionTemplate( @Qualifier('test2SqlSessionFactory') SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); }}

4.啟動加載配置

@EnableConfigurationProperties(value = { DBConfig1.class, DBConfig2.class })使用還是正常使用@Transactional方式

到此這篇關于SpringBoot使用Atomikos技術整合多數據源的實現的文章就介紹到這了,更多相關SpringBoot Atomikos多數據源內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩av在线播放中文字幕| 97精品国产福利一区二区三区| 亲子伦视频一区二区三区| 亚洲免费福利| 欧美在线资源| 亚洲精品欧美| 麻豆视频一区| 国模精品一区| 九一成人免费视频| 亚洲精品日本| 久久中文精品| 久久男女视频| 日韩一区精品视频| 国产九一精品| 亚洲手机视频| 日本欧美大码aⅴ在线播放| 精品精品国产三级a∨在线| 伊人精品一区| 亚洲va久久久噜噜噜久久| 欧美国产不卡| 亚洲免费激情| 国产极品模特精品一二| 日韩激情一区| 亚洲久久一区| 成人国产精品一区二区免费麻豆| 亚洲精品电影| 久久久久亚洲精品中文字幕| 亚洲成人精选| 国产精品午夜一区二区三区| 色老板在线视频一区二区| 亚州av日韩av| 亚洲精品一级二级| 日韩av午夜在线观看| 日本а中文在线天堂| 国产一区二区高清| 精品国产亚洲一区二区在线观看| 亚洲精品中文字幕乱码| 国产日韩免费| 图片区亚洲欧美小说区| 久久不卡日韩美女| 先锋影音国产一区| 国产在线一区不卡| 伊人久久一区| 久久免费大视频| 国产激情欧美| 亚洲91网站| jiujiure精品视频播放| 精品国产乱码| 午夜亚洲福利| 亚洲特色特黄| 国产成人免费av一区二区午夜| 亚洲一级大片| 成人精品亚洲| 国产精品v亚洲精品v日韩精品 | 欧美日韩国产精品一区二区亚洲| 国产另类在线| 亚洲开心激情| japanese国产精品| 理论片午夜视频在线观看| 欧美视频久久| 伊人久久亚洲| 99在线精品免费视频九九视| 日韩大片在线播放| 精品久久久网| 国产精品对白久久久久粗| 免费在线观看一区二区三区| 国产资源在线观看入口av| 国产精品久一| 日本视频在线一区| 中文不卡在线| 亚洲欧美日韩精品一区二区| 色在线中文字幕| 国产成人免费精品| 美女久久久精品| 国产精品香蕉| 国产精品亚洲欧美一级在线| 国产亚洲久久| 国产精品亚洲人成在99www | 综合国产在线| 午夜国产一区二区| 欧美日韩在线播放视频| 伊人久久国产| 欧产日产国产精品视频| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 美女在线视频一区| 欧美精品中文字幕亚洲专区| 视频在线观看91| 国产精品呻吟| 视频精品一区二区| 蜜臀av国产精品久久久久| 亚洲精品中文字幕乱码| 成人av二区| 在线成人直播| 国产精品免费看| 免费在线视频一区| 蜜桃一区二区三区在线| 免费看日韩精品| 男女男精品视频网| 日韩精品社区| 日韩av成人高清| 国产精品一卡| 国产乱码精品一区二区亚洲| 国产精品久久久久久久免费软件| 国产美女精品视频免费播放软件| 国产精品密蕾丝视频下载| 国产精品网站在线看| 麻豆精品在线视频| 91日韩免费| 欧美高清不卡| 蜜桃一区二区三区在线观看| 日韩精品久久久久久| 国产探花一区| 四虎8848精品成人免费网站| 欧美日韩在线网站| 在线日韩成人| 欧美天堂一区二区| 国产伦精品一区二区三区千人斩| 国产精品一区二区av日韩在线| 韩国一区二区三区视频| 日韩中文影院| 丝瓜av网站精品一区二区| 日韩精品一级| 国产一区二区三区四区五区 | 欧美亚洲激情| 婷婷成人av| 久久精品三级| 在线一区av| 一级成人国产| 麻豆精品视频在线观看| 欧产日产国产精品视频| 一区二区三区网站| 老色鬼精品视频在线观看播放| 久久久久国产一区二区| 色综合视频一区二区三区日韩 | 亚洲综合欧美| 国产亚洲一区二区三区啪| 鲁大师精品99久久久| 久久国产主播| 日韩国产欧美一区二区三区| 国产一区二区三区四区五区| 亚洲欧洲一区二区天堂久久| 国产精品永久| 国产字幕视频一区二区| 亚洲91网站| 久久久久欧美精品| 国产情侣一区| 亚洲激情不卡| 鲁大师精品99久久久| 日韩视频不卡| 国产伊人久久| 日韩视频一二区| 久久久久久久久久久9不雅视频| 日韩高清不卡一区二区| 高清不卡亚洲| 日韩精品中文字幕吗一区二区| 91精品国产福利在线观看麻豆| 久久激情五月婷婷| 欧美日韩激情| 精品久久网站| 日韩不卡手机在线v区| 久久国产电影| 麻豆国产一区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲免费观看高清完整版在线观| 福利在线免费视频| 亚洲精品精选| 国产综合婷婷| 欧美激情另类| 国产免费av国片精品草莓男男| 日韩高清中文字幕一区二区| 亚洲精品一级| 亚洲欧洲日本mm| 亚洲精品88| 久久成人av| 热久久久久久| 亚洲乱亚洲高清| 99re国产精品| 久久久久中文| 成午夜精品一区二区三区软件| 亚洲精品动态| 免费观看在线综合色| 日韩精品水蜜桃| 日本久久综合| 国产精品亚洲欧美日韩一区在线| 视频一区视频二区在线观看| 亚洲第一区色| 久久精选视频| 亚洲伦乱视频| 日韩精品诱惑一区?区三区| 国产精品一区二区免费福利视频 | 日本高清不卡一区二区三区视频| 麻豆国产91在线播放| 欧美三区不卡| 日韩高清成人在线| 偷拍亚洲精品| 亚洲免费毛片| 日本不卡一区二区三区| 三级欧美韩日大片在线看| 亚洲国产不卡| 亚洲欧洲日本mm|