From c3c02a94737766f400309e3ffb1208d165b7a8cf Mon Sep 17 00:00:00 2001 From: ytChen <1650611030@qq.com> Date: Mon, 11 Mar 2024 09:26:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/ds/TeachingDataSourceConfig.java | 116 +++++++++--------- .../base/ds/DataSourceContextHolder.java | 35 +++++- .../common/base/util/HspHostUtil.java | 6 +- 3 files changed, 90 insertions(+), 67 deletions(-) diff --git a/hoe-admin/admin-boot/src/main/java/com/recovery/admin/boot/config/ds/TeachingDataSourceConfig.java b/hoe-admin/admin-boot/src/main/java/com/recovery/admin/boot/config/ds/TeachingDataSourceConfig.java index c948855..ff76ea5 100644 --- a/hoe-admin/admin-boot/src/main/java/com/recovery/admin/boot/config/ds/TeachingDataSourceConfig.java +++ b/hoe-admin/admin-boot/src/main/java/com/recovery/admin/boot/config/ds/TeachingDataSourceConfig.java @@ -1,58 +1,58 @@ -package com.recovery.admin.boot.config.ds; - -import com.alibaba.druid.pool.DruidDataSource; -import org.apache.ibatis.session.SqlSessionFactory; -import org.mybatis.spring.SqlSessionFactoryBean; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.jdbc.datasource.DataSourceTransactionManager; - -import javax.sql.DataSource; - -//@Configuration -//// 扫描 Mapper 接口并容器管理 -//@MapperScan(basePackages = TeachingDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "teachingSqlSessionFactory") -public class TeachingDataSourceConfig { - // 精确到 course 目录,以便跟其他数据源隔离 - static final String PACKAGE = "com.recovery.admin.boot.mapper"; - static final String MAPPER_LOCATION = "classpath:mapper/*.xml"; - - @Value("${admin.datasource.url}") - private String url; - - @Value("${admin.datasource.username}") - private String user; - - @Value("${admin.datasource.password}") - private String password; - - @Value("${admin.datasource.driverClassName}") - private String driverClass; - - @Bean(name = "adminDataSource") - public DataSource cpdDataSource() { - DruidDataSource dataSource = new DruidDataSource(); - dataSource.setDriverClassName(driverClass); - dataSource.setUrl(url); - dataSource.setUsername(user); - dataSource.setPassword(password); - return dataSource; - } - - @Bean(name = "adminTransactionManager") - public DataSourceTransactionManager courseTransactionManager() { - return new DataSourceTransactionManager(cpdDataSource()); - } - - @Bean(name = "adminSqlSessionFactory") - public SqlSessionFactory cpdSqlSessionFactory(@Qualifier("adminDataSource") DataSource cpdDataSource) - throws Exception { - final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); - sessionFactory.setDataSource(cpdDataSource); - sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() - .getResources(TeachingDataSourceConfig.MAPPER_LOCATION)); - return sessionFactory.getObject(); - } -} +//package com.recovery.admin.boot.config.ds; +// +//import com.alibaba.druid.pool.DruidDataSource; +//import org.apache.ibatis.session.SqlSessionFactory; +//import org.mybatis.spring.SqlSessionFactoryBean; +//import org.springframework.beans.factory.annotation.Qualifier; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.context.annotation.Bean; +//import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +//import org.springframework.jdbc.datasource.DataSourceTransactionManager; +// +//import javax.sql.DataSource; +// +////@Configuration +////// 扫描 Mapper 接口并容器管理 +////@MapperScan(basePackages = TeachingDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "teachingSqlSessionFactory") +//public class TeachingDataSourceConfig { +// // 精确到 course 目录,以便跟其他数据源隔离 +// static final String PACKAGE = "com.recovery.admin.boot.mapper"; +// static final String MAPPER_LOCATION = "classpath:mapper/*.xml"; +// +// @Value("${admin.datasource.url}") +// private String url; +// +// @Value("${admin.datasource.username}") +// private String user; +// +// @Value("${admin.datasource.password}") +// private String password; +// +// @Value("${admin.datasource.driverClassName}") +// private String driverClass; +// +// @Bean(name = "adminDataSource") +// public DataSource cpdDataSource() { +// DruidDataSource dataSource = new DruidDataSource(); +// dataSource.setDriverClassName(driverClass); +// dataSource.setUrl(url); +// dataSource.setUsername(user); +// dataSource.setPassword(password); +// return dataSource; +// } +// +// @Bean(name = "adminTransactionManager") +// public DataSourceTransactionManager courseTransactionManager() { +// return new DataSourceTransactionManager(cpdDataSource()); +// } +// +// @Bean(name = "adminSqlSessionFactory") +// public SqlSessionFactory cpdSqlSessionFactory(@Qualifier("adminDataSource") DataSource cpdDataSource) +// throws Exception { +// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); +// sessionFactory.setDataSource(cpdDataSource); +// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() +// .getResources(TeachingDataSourceConfig.MAPPER_LOCATION)); +// return sessionFactory.getObject(); +// } +//} diff --git a/hoe-common/common-base/src/main/java/com/recovery/common/base/ds/DataSourceContextHolder.java b/hoe-common/common-base/src/main/java/com/recovery/common/base/ds/DataSourceContextHolder.java index 8caf47b..17dea55 100644 --- a/hoe-common/common-base/src/main/java/com/recovery/common/base/ds/DataSourceContextHolder.java +++ b/hoe-common/common-base/src/main/java/com/recovery/common/base/ds/DataSourceContextHolder.java @@ -1,20 +1,43 @@ package com.recovery.common.base.ds; /** - * Created by RyanWang on 2019-07-24 - */ - + * @ClassName: DataSourceContextHolder + * @Description: 数据源上下文 + * @Author: + * @Date: 2022/2/18 10:04 + **/ public class DataSourceContextHolder { private static final ThreadLocal contextHolder = new ThreadLocal(); - + /** + * @MonthName: setDBType + * @Description: 设置当前线程持有的数据源 + * @Author: + * @Date: 2022/2/18 10:07 + * @Param: [dbType] + * @return: void + **/ public static synchronized void setDBType(String dbType){ contextHolder.set(dbType); } - + /** + * @MonthName: getDBType + * @Description: 获取当前线程持有的数据源 + * @Author: tanyp + * @Date: 2022/2/18 10:07 + * @Param: [] + * @return: java.lang.String + **/ public static String getDBType(){ return contextHolder.get(); } - + /** + * @MonthName: clearDBType + * @Description: 清除当前线程持有的数据源 + * @Author: tanyp + * @Date: 2022/2/18 10:07 + * @Param: [] + * @return: void + **/ public static void clearDBType(){ contextHolder.remove(); } diff --git a/hoe-common/common-base/src/main/java/com/recovery/common/base/util/HspHostUtil.java b/hoe-common/common-base/src/main/java/com/recovery/common/base/util/HspHostUtil.java index bba139b..3fc338d 100644 --- a/hoe-common/common-base/src/main/java/com/recovery/common/base/util/HspHostUtil.java +++ b/hoe-common/common-base/src/main/java/com/recovery/common/base/util/HspHostUtil.java @@ -70,9 +70,9 @@ public class HspHostUtil { //log.info("maxWait : " + EnvironmentConfig.getProperty("master.datasource.maxWait")); -// dynamicDataSource.setBreakAfterAcquireFailure(true);//失败之后中断 -// dynamicDataSource.setConnectionErrorRetryAttempts(3);//失败后重试次数 -// dynamicDataSource.setMaxWait(3000);//超时时间 + dynamicDataSource.setBreakAfterAcquireFailure(true);//失败之后中断 + dynamicDataSource.setConnectionErrorRetryAttempts(3);//失败后重试次数 + dynamicDataSource.setMaxWait(3000);//超时时间 dataSourceMap.put(dataSourceKey, dynamicDataSource); DynamicDataSource.getInstance().setTargetDataSources(dataSourceMap); }