开发者

@DS注解的使用,动态数据源,事务详解

目录
  • @DS注解的使用,动态数据源,事务
    • 首先,引入jar包
    • 在Springboot的application.yml中进行配置
    • 在使用@DS注解时
  • 总结

    @DphpS注解的使用,动态数据源,事务

    有时,在一个项目中会用到多数据源,

    此时可以使用苞米豆的dynamic-datasource-spring-boot-starter

    首先,引入jar包

    <dependency>
    	<groupId>com.baomidou</groupId>
    	<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    	<version>2http://www.devze.com.5.4&lwww.devze.comt;/version>
    </dependency>

    在Springboot的application.yml中进行配置

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
        driver-class-name: com.mysql.cj.jdbc.Driver
        username: root
        password: root
        dynamic:
          primary: master
          datasource:
            master:
              url: jdbc:mysql://localhost:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
              driver-class-name: com.mysql.cj.jdbc.Driver
              username: root
              password: root
            sub:
              url: jdbc:mysql:/编程客栈/localhost:3306/test2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
              driver-class-name: com.mysql.cj.jdbc.Driver
              username: root1
              password: root1

    其中配置了两个数据源,mastersubhttp://www.devze.com,其中选择master作为默认数据源(对应primary配置);

    若想使用sub作为部分代码的数据源,可在ServiceImpl做如下配置:

    在使用@DS注解时

    有如下注意事项:

    1. 不能使用事务,否则数据源不会切换,使用的还是第一次加载的数据源;
    2. 第一次加载数据源之后,第二次、第三次…操作其它数据源,如果数据源不存在,使用的还是第一次加载的数据源;
    3. 数据源名称不要包含下划线,否则不能切换。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜