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

 更新时间:2024年09月20日 09:22:28   作者:凯酱  
在项目中使用多数据源时,可以借助苞米豆的dynamic-datasource-spring-boot-starter进行配置,首先需引入相应的jar包,并在application.yml中设置主从数据源,其中一般选择master作为默认数据源,在实现类中通过@DS注解指定数据源

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

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

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

首先,引入jar包

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
	<version>2.5.4</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

其中配置了两个数据源,mastersub,其中选择master作为默认数据源(对应primary配置);

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

在使用@DS注解时

有如下注意事项:

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Eclipse安装配置方法图文教程

    Eclipse安装配置方法图文教程

    这篇文章主要为大家详细介绍了Eclipse安装配置方法图文教程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 详解SpringBoot定制@ResponseBody注解返回的Json格式

    详解SpringBoot定制@ResponseBody注解返回的Json格式

    这篇文章主要介绍了详解SpringBoot定制@ResponseBody注解返回的Json格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 深入理解java线程通信

    深入理解java线程通信

    开发中不免会遇到需要所有子线程执行完毕通知主线程处理某些逻辑的场景。或者是线程 A 在执行到某个条件通知线程 B 执行某个操作。下面我们来一起学习如何解决吧
    2019-05-05
  • java如何更改数据库中的数据

    java如何更改数据库中的数据

    这篇文章主要介绍了java如何更改数据库中的数据,修改数据库是数据库操作必不可少的一部分,使用Statement接口中的excuteUpdate()方法可以修改数据表中的数据,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • SpringMVC 使用JSR-303进行校验 @Valid示例

    SpringMVC 使用JSR-303进行校验 @Valid示例

    本篇文章主要介绍了SpringMVC 使用JSR-303进行校验 @Valid示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 详解MyBatis Plus中分页插件的使用

    详解MyBatis Plus中分页插件的使用

    这篇文章主要为大家详细介绍了MyBatis Plus中分页插件使用的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-02-02
  • springBoot项目如何实现启动多个实例

    springBoot项目如何实现启动多个实例

    这篇文章主要介绍了springBoot项目如何实现启动多个实例的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java使用FastExcel导入支持多种时间格式

    Java使用FastExcel导入支持多种时间格式

    FastExcel 是一个采用纯 java 开发的 excel 文件读写组件,支持 Excel'97(-2003)(BIFF8)文件格式,本文主要介绍了如何使用FastExcel导入支持多种时间格式,感兴趣的可以了解
    2024-12-12
  • Java项目防止SQL注入的几种方法总结

    Java项目防止SQL注入的几种方法总结

    SQL注入是比较常见的网络攻击方式之一,在客户端在向服务器发送请求的时候,sql命令通过表单提交或者url字符串拼接传递到后台持久层,最终达到欺骗服务器执行恶意的SQL命令,下面这篇文章主要给大家总结介绍了关于Java项目防止SQL注入的几种方法,需要的朋友可以参考下
    2023-04-04
  • 使用log4j MDC实现日志追踪

    使用log4j MDC实现日志追踪

    这篇文章主要介绍了使用log4j MDC实现日志追踪方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论