目录
- @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
其中配置了两个数据源,master
与subhttp://www.devze.com
,其中选择master
作为默认数据源(对应primary
配置);
若想使用sub
作为部分代码的数据源,可在ServiceImpl
做如下配置:
在使用@DS注解时
有如下注意事项:
- 不能使用事务,否则数据源不会切换,使用的还是第一次加载的数据源;
- 第一次加载数据源之后,第二次、第三次…操作其它数据源,如果数据源不存在,使用的还是第一次加载的数据源;
- 数据源名称不要包含下划线,否则不能切换。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论