码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-04-16 12:22:51      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:分代   amp   下划线   cat   事务   coding   ati   ast   extends   

有时,在一个项目中会用到多数据源,此时可以使用苞米豆的dynamic-datasource-spring-boot-starter
首先,引入jar包:

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>2.5.4</version>
</dependency>
然后,在Springbootapplication.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("sub")

@Service

public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {}

 

 

在使用@DS注解时,有如下注意事项:

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

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

标签:分代   amp   下划线   cat   事务   coding   ati   ast   extends   

原文地址:https://www.cnblogs.com/pxyblog/p/14665400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!