这里介绍的是我刚写的一个动态切换数据源的插件的介绍。

这块内容前前后后总共写了三篇
1. Spring Boot HikariCP 一 ——集成多数据源
2. Spring Boot 动态切换数据源二——负载均衡
3. Spring Boot 动态切换数据源三——动态获取配置文件中的配置信息
4. 插件GitHubrhettpang/dynamic-datasource

本项目用来动态切换多个数据源,原则上用户只要引入本项目,在相关配置文件中加入相关数据源的配置即可。目前是对slave数据源进行动态切换。

  • Spring Boot 1.5.0+
  • HikariCP 2.5.1 +
  • 配置信息如下

    slave:
      hosts: slave1,slave2
    dynamic:
      hikari:
        - master:
          jdbc-url: jdbc:mysql://master-host:3306/authcenter?useUnicode=true&characterEncoding=utf8&useSSL=true&allowMultiQueries=true&verifyServerCertificate=false
          username: root
          password: root
          pool-name: master
        - slave1:
          jdbc-url: jdbc:mysql://slave1-host:3306/authcenter?useUnicode=true&characterEncoding=utf8&useSSL=true&allowMultiQueries=true&verifyServerCertificate=false
          username: root
          password: root
          pool-name: slave1
          read-only: true
        - slave2:
          jdbc-url: jdbc:mysql://slave2-host:3306/authcenter?useUnicode=true&characterEncoding=utf8&useSSL=true&allowMultiQueries=true&verifyServerCertificate=false
          username:<
    这里介绍的是我刚写的一个动态切换数据源的插件的介绍,Git地址rhettpang/dynamic-datasource。简介本项目用来动态切换多个数据源,原则上用户只要引入本项目,在相关配置文件中加入相关数据源的配置即可。目前是对slave数据源进行动态切换。版本依赖Spring Boot 1.5.0+HikariCP 2.5.1 +配置信息如下slave: ho...
    spring boot -multiple-dataSources spring - boot 数据 自动 切换 示例项目,利用 spring aop切面,自动 切换 数据 。 CommonServiceImpl是公共处理类,Test1ServiceImpl和Test2ServiceImpl是两个 数据 分别的业务处理类。定义为DataSourceAspect类处理切面。 spring boot -multiple-dataSources / src / main / resources目录下的database1.sql和database2.sql是2个 数据 初始化脚本 IntelliJ IDEA 2016.3.3(或Eclipse) 杰克1.8 Maven的3.3.9 使用的技术 Mybatis 通用mapper(一个非常好用的mybatis 件,详细 介绍 见 ) 在IDE中查看 码并运行 1.在IntelliJ IDEA(推荐使用) 文件->导入项目->选择 spring boot -multiple-dataSources文件夹->创建现有资 的项目表单-> ... <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource- spring - boot -starter</artifactId> <version>3.1.1</version> </dependenc
    1、通过切面的方式进行 数据 切换 ;切的是 注解@DataSoure;@Pointcut("@annotation(com.manage.common.annotation.DataSource)" + "|| @within(com.manage.common.annotation.DataSource)") 2、然后切面获取当前的方法的注解中所要 切换 数据 库 3、设置 数据 的变量ThreadLocal<String>CONTEXT_HOLDER.set(dsTy...
    import com.baymax.common.enums.ErrorCode; import com.google.common.collect.Lists; import com.zhongan.admin.service.ResponseUtils; import com.zhongan.admin.vo.BaseResponse; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.la.
    <dependency> <groupId>org.mybatis. spring . boot </groupId> <artifactId>mybatis- spring - boot -starter</artifactId> <version>2.0.1</vers @Primary @ConfigurationProperties(" spring .datasource.primary") public DataSource primaryDataSource() { return DataSourceBuilder.create().build(); @Bean @ConfigurationProperties(" spring .datasource.secondary") public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); @Bean @Primary public JdbcTemplate primaryJdbcTemplate(DataSource primaryDataSource) { return new JdbcTemplate(primaryDataSource); @Bean public JdbcTemplate secondaryJdbcTemplate(DataSource secondaryDataSource) { return new JdbcTemplate(secondaryDataSource); @Bean public DataSourceRoutingAspect dataSourceRoutingAspect() { return new DataSourceRoutingAspect(); 这个示例使用了@ConfigurationProperties和@Bean注解来创建两个 数据 和两个JdbcTemplate对象。同时,示例代码还使用了一个@Primary注解来指定一个默认的 数据 和JdbcTemplate对象。另外,还创建了一个名为"dataSourceRoutingAspect"的切面,用来实现 动态 数据 切换 。 希望这个示例对你有所帮助!