This commit is contained in:
parent
5d407ad65b
commit
c3c02a9473
|
@ -1,58 +1,58 @@
|
||||||
package com.recovery.admin.boot.config.ds;
|
//package com.recovery.admin.boot.config.ds;
|
||||||
|
//
|
||||||
import com.alibaba.druid.pool.DruidDataSource;
|
//import com.alibaba.druid.pool.DruidDataSource;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
//import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
//import org.mybatis.spring.SqlSessionFactoryBean;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
//import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
//import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.context.annotation.Bean;
|
//import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||||
|
//
|
||||||
import javax.sql.DataSource;
|
//import javax.sql.DataSource;
|
||||||
|
//
|
||||||
//@Configuration
|
////@Configuration
|
||||||
//// 扫描 Mapper 接口并容器管理
|
////// 扫描 Mapper 接口并容器管理
|
||||||
//@MapperScan(basePackages = TeachingDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "teachingSqlSessionFactory")
|
////@MapperScan(basePackages = TeachingDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "teachingSqlSessionFactory")
|
||||||
public class TeachingDataSourceConfig {
|
//public class TeachingDataSourceConfig {
|
||||||
// 精确到 course 目录,以便跟其他数据源隔离
|
// // 精确到 course 目录,以便跟其他数据源隔离
|
||||||
static final String PACKAGE = "com.recovery.admin.boot.mapper";
|
// static final String PACKAGE = "com.recovery.admin.boot.mapper";
|
||||||
static final String MAPPER_LOCATION = "classpath:mapper/*.xml";
|
// static final String MAPPER_LOCATION = "classpath:mapper/*.xml";
|
||||||
|
//
|
||||||
@Value("${admin.datasource.url}")
|
// @Value("${admin.datasource.url}")
|
||||||
private String url;
|
// private String url;
|
||||||
|
//
|
||||||
@Value("${admin.datasource.username}")
|
// @Value("${admin.datasource.username}")
|
||||||
private String user;
|
// private String user;
|
||||||
|
//
|
||||||
@Value("${admin.datasource.password}")
|
// @Value("${admin.datasource.password}")
|
||||||
private String password;
|
// private String password;
|
||||||
|
//
|
||||||
@Value("${admin.datasource.driverClassName}")
|
// @Value("${admin.datasource.driverClassName}")
|
||||||
private String driverClass;
|
// private String driverClass;
|
||||||
|
//
|
||||||
@Bean(name = "adminDataSource")
|
// @Bean(name = "adminDataSource")
|
||||||
public DataSource cpdDataSource() {
|
// public DataSource cpdDataSource() {
|
||||||
DruidDataSource dataSource = new DruidDataSource();
|
// DruidDataSource dataSource = new DruidDataSource();
|
||||||
dataSource.setDriverClassName(driverClass);
|
// dataSource.setDriverClassName(driverClass);
|
||||||
dataSource.setUrl(url);
|
// dataSource.setUrl(url);
|
||||||
dataSource.setUsername(user);
|
// dataSource.setUsername(user);
|
||||||
dataSource.setPassword(password);
|
// dataSource.setPassword(password);
|
||||||
return dataSource;
|
// return dataSource;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Bean(name = "adminTransactionManager")
|
// @Bean(name = "adminTransactionManager")
|
||||||
public DataSourceTransactionManager courseTransactionManager() {
|
// public DataSourceTransactionManager courseTransactionManager() {
|
||||||
return new DataSourceTransactionManager(cpdDataSource());
|
// return new DataSourceTransactionManager(cpdDataSource());
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Bean(name = "adminSqlSessionFactory")
|
// @Bean(name = "adminSqlSessionFactory")
|
||||||
public SqlSessionFactory cpdSqlSessionFactory(@Qualifier("adminDataSource") DataSource cpdDataSource)
|
// public SqlSessionFactory cpdSqlSessionFactory(@Qualifier("adminDataSource") DataSource cpdDataSource)
|
||||||
throws Exception {
|
// throws Exception {
|
||||||
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
|
// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
|
||||||
sessionFactory.setDataSource(cpdDataSource);
|
// sessionFactory.setDataSource(cpdDataSource);
|
||||||
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
|
// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
|
||||||
.getResources(TeachingDataSourceConfig.MAPPER_LOCATION));
|
// .getResources(TeachingDataSourceConfig.MAPPER_LOCATION));
|
||||||
return sessionFactory.getObject();
|
// return sessionFactory.getObject();
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
|
@ -1,20 +1,43 @@
|
||||||
package com.recovery.common.base.ds;
|
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 {
|
public class DataSourceContextHolder {
|
||||||
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
|
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
|
||||||
|
/**
|
||||||
|
* @MonthName: setDBType
|
||||||
|
* @Description: 设置当前线程持有的数据源
|
||||||
|
* @Author:
|
||||||
|
* @Date: 2022/2/18 10:07
|
||||||
|
* @Param: [dbType]
|
||||||
|
* @return: void
|
||||||
|
**/
|
||||||
public static synchronized void setDBType(String dbType){
|
public static synchronized void setDBType(String dbType){
|
||||||
contextHolder.set(dbType);
|
contextHolder.set(dbType);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @MonthName: getDBType
|
||||||
|
* @Description: 获取当前线程持有的数据源
|
||||||
|
* @Author: tanyp
|
||||||
|
* @Date: 2022/2/18 10:07
|
||||||
|
* @Param: []
|
||||||
|
* @return: java.lang.String
|
||||||
|
**/
|
||||||
public static String getDBType(){
|
public static String getDBType(){
|
||||||
return contextHolder.get();
|
return contextHolder.get();
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @MonthName: clearDBType
|
||||||
|
* @Description: 清除当前线程持有的数据源
|
||||||
|
* @Author: tanyp
|
||||||
|
* @Date: 2022/2/18 10:07
|
||||||
|
* @Param: []
|
||||||
|
* @return: void
|
||||||
|
**/
|
||||||
public static void clearDBType(){
|
public static void clearDBType(){
|
||||||
contextHolder.remove();
|
contextHolder.remove();
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,9 +70,9 @@ public class HspHostUtil {
|
||||||
//log.info("maxWait : " + EnvironmentConfig.getProperty("master.datasource.maxWait"));
|
//log.info("maxWait : " + EnvironmentConfig.getProperty("master.datasource.maxWait"));
|
||||||
|
|
||||||
|
|
||||||
// dynamicDataSource.setBreakAfterAcquireFailure(true);//失败之后中断
|
dynamicDataSource.setBreakAfterAcquireFailure(true);//失败之后中断
|
||||||
// dynamicDataSource.setConnectionErrorRetryAttempts(3);//失败后重试次数
|
dynamicDataSource.setConnectionErrorRetryAttempts(3);//失败后重试次数
|
||||||
// dynamicDataSource.setMaxWait(3000);//超时时间
|
dynamicDataSource.setMaxWait(3000);//超时时间
|
||||||
dataSourceMap.put(dataSourceKey, dynamicDataSource);
|
dataSourceMap.put(dataSourceKey, dynamicDataSource);
|
||||||
DynamicDataSource.getInstance().setTargetDataSources(dataSourceMap);
|
DynamicDataSource.getInstance().setTargetDataSources(dataSourceMap);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue