根据用户所在的区域切换到自己区域的数据源,
自定义DataSource继承org.springframework.jdbc.datasource.DelegatingDataSource并且重写
public Connection getConnection() throws SQLException方法
public Connection getConnection() throws SQLException {
AgilityUserBean userBean = ThreadContext.getUser();
if(userBean != null){
System.out.println("the system will user " + dataSourceName + userBean.getLocale() + " dataSource");
ds = ApplicationContext.getInstance().getBean(dataSourceName + userBean.getLocale());
if(ds == null){
throw new SQLException("can't find the dataSource for this region.");
}
setTargetDataSource((DataSource)ds);
}else{
System.out.println("System use default dataSource " + dataSourceName);
}
Assert.state(getTargetDataSource() != null, "targetDataSource is required");
Connection con = null;
try {
con = getTargetDataSource().getConnection();
} catch (SQLException e) {
logger.error("Error occured during connection request. Thread name = " +
Thread.currentThread().getName());
logger.error("Listing binded to thread resources...");
throw e;
}
return con;
}
经过简单的验证可行,不知道这样是否完全正确,希望大家拍砖!
分享到:
相关推荐
spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制
通过SpringAop实现多数据源的动态切换 并采用Druid连接池,可扩展继续增加数据库配置。
2. 实现数据源动态注册、修改、删除,无需重启服务 3. 实现同时兼容多种数据源连接池 4. 实现动态数据源连接池属性配置 5. 采用双端队列实现链式数据库切换 6. 实现事务内切换数据源(支持原生Spring声明式事务哟,仅...
通过简单的demo实现SpingBoot多数据源配置并动态切换多数据源
Mybatis+Spring+SpringMVC+quartz多数据源切换 定时任务 多数据库之间同步
Spring+SpringMvc+MybatisPlus实现多数据源切换、利用自定义Aop注解,只需要在需要切换数据库的方法上加上注解即可实现、极大避免了代码冗余。
SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询,案例以postgresql和oracle数据库为数据源,分别使用mybatis-plus分页插件和pagehelper分页插件实现分页查询。
mybatis+spring实现动态切换数据源,修改数据源配置信息之后,直接运行test可进行测试
本篇文章主要介绍了详解Spring(AbstractRoutingDataSource)实现动态数据源切换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
Springcloud 多数库 多数据源整合,查询动态切换数据库
用springboot 集成mybatis多数据源,用aop实现的动态切换,支持事务,不会使aop动态切换失效。注意:此代码不涉及分布式事务,如果需要分布式事务 需要采取其他方案。
请自行修改com/resources/datasource.properties中数据库配置,Demo中配置的两个数据源,一个是Mysql,一个是Oracle。 运行之前请自行建立数据库的表。
spring-boot集成mybatis+druid实现 hive/mysql多数据源切换,用mysql数据库作为用户验证库以及用户信息库,hive作为数据可视化源库。
使用springboot + JPA / MyBatis 实现多数据源动态切换
spring boot AOP注解方式实现多数据源整合(从零开始搭建框架到配置多数据源实践小例子)
Spring Boot整合Mybatis使用druid实现多数据源自动切换
spring boot mybatis plus 多数据源切换的demo解压运行
spring boot整合druid连接池,采用注解方式实现多数据源动态切换 jdk版本1.8 spring boot版本1.5.14
用于详细描述配置spring下多数据源动态切换方案的实施配置说明。可以自动切换数据源的配置。
首先,这个方案完全是在spring的框架下解决的,数据源依然配置在spring的配置文件中,sessionFactory依然去配置它的dataSource属性,它甚至都不知道dataSource的改变。 其次,实现简单,易于维护。这个方案虽然我说...