注解+AbstractRoutingDataSource实现多数据源
来源:互联网 发布:精通matlab接口与编程 编辑:程序博客网 时间:2024/05/20 10:51
利用自定义注解给实体类设置AbstractRoutingDataSource的数据源的key。选择数据源时,通过获取注解设置的key值选择不同的数据源。
使用场景:提取公共方法,利用注解设置key值。实现实体类与选择数据源的解耦,且更直观可读性强(个人理解)。通过在实体类中添加数据源字段存储key值的方法,增加耦合,且bean的定义存在不相关字段。而利用map存储数据源key,数据源不直观,降低代码可读性。
AbstractRoutingDataSource使用参考上一篇:Spring利用AbstractRoutingDataSource实现多数据源
定义注解:
package com.learn.table;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documentedpublic @interface Table {//设置数据源的keypublic String dbName();}
实体类:
package com.learn.pojo;import com.learn.table.Table;//定义类时就确定要使用的数据源@Table(dbName="dataSource2")public class Work {private String workId;private String workName;public String getWorkId() {return workId;}public void setWorkId(String workId) {this.workId = workId;}public String getWorkName() {return workName;}public void setWorkName(String workName) {this.workName = workName;}}使用:
package com.learn.moreDate;import javax.sql.DataSource;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jdbc.core.JdbcTemplate;import com.learn.pojo.Work;import com.learn.table.Table;public class Demo {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("classpath:config/applicationContext.xml");//获取Work的Table注解Table table = (Table)Work.class.getAnnotation(Table.class);//获取Table的值并设置数据源key值CustomerContextHolder.setCustomerType(table.dbName());//获取数据源DataSource dds = (DataSource)context.getBean("dynamicDataSource");//执行sqlJdbcTemplate template = new JdbcTemplate(dds);String sql = "delete from work";template.update(sql);}}
0 0
- 注解+AbstractRoutingDataSource实现多数据源
- AbstractRoutingDataSource实现多数据源
- Spring 的AbstractRoutingDataSource实现多数据源
- Spring利用AbstractRoutingDataSource实现多数据源
- 使用Aop和AbstractRoutingDataSource实现多数据源的配置
- Spring+MyBatis多数据源配置实现(AbstractRoutingDataSource)
- 【Spring】使用Spring的AbstractRoutingDataSource实现多数据源切换
- 使用Spring的AbstractRoutingDataSource实现多数据源切换
- 【Spring】使用Spring的AbstractRoutingDataSource实现多数据源切换
- AbstractRoutingDataSource的多数据源应用
- spring的AbstractRoutingDataSource 多数据源切换
- java 通过继承类AbstractRoutingDataSource 而实现的 多数据源切换 的 缺陷(二)
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
- 利用Spring的AbstractRoutingDataSource解决多数据源的问题
- 利用Spring的AbstractRoutingDataSource解决多数据源的问题
- 利用Spring的AbstractRoutingDataSource解决多数据源的问题
- STL源码阅读(八)
- ARP投毒
- JAVA为什么可以跨平台
- (九)、ZooKeeper数据模型
- 样式表优先级别问题
- 注解+AbstractRoutingDataSource实现多数据源
- 课程 - 计算机组织与系统
- github/gitlab 管理多个ssh key
- 安卓配置文件详解
- 泛型数组列表和普通数组之间的区别
- Python垃圾回收
- 使用CentOS7配置Squid代理
- 决策树(三)--完整总结(ID3,C4.5,CART,剪枝,替代)
- 共享了磁盘,但在远程桌面的机器上看不到自己共享的本地硬盘