springboot多数据源<一>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
平时切换数据源总能想到,利用注解,切面,反射结合 AbstractRoutingDataSource进行切换
 
springboot的装配很容易被大家忽略
下面我介绍下一种多数据源切换的方式,到Dao层利用
import com.baomidou.dynamic.datasource.annotation.DS注解注入数据源的方式使用不同的数据库。
 
@Mapper
@DS("user")
public interface UserMapper
 
 
@Mapper
@DS("admin")
public interface AdminMpper

 

1
使用时直接在服务接口层进行注入即可

 

1
2
3
4
5
<dependency>
         <groupId>com.baomidou</groupId>
         <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
         <version>3.0.0</version>
     </dependency>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
配置样例:
spring.datasource.dynamic.primary=local
#设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源
spring.datasource.dynamic.strict=false
 
spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.master.username=root
spring.datasource.dynamic.datasource.master.url=jdbc:mysql://127.0.0.1:3306/quanxian?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.dynamic.datasource.master.password=
spring.datasource.dynamic.datasource.master.hikari.min-idle=5
spring.datasource.dynamic.datasource.master.hikari.idle-timeout=180000
spring.datasource.dynamic.datasource.master.hikari.max-pool-size= 10
spring.datasource.dynamic.datasource.master.hikari.is-auto-commit=true
spring.datasource.dynamic.datasource.master.hikari.pool-name= myHikaricp2
spring.datasource.dynamic.datasource.master.hikari.max-lifetime=180000
spring.datasource.dynamic.datasource.master.hikari.connection-timeout=300000
spring.datasource.dynamic.datasource.master.hikari.connection-test-query= select 1
spring.datasource.dynamic.datasource.master.hikari.validation-timeout= 500
 
 
 
 
 
 
spring.datasource.dynamic.datasource.local.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.local.username=root
spring.datasource.dynamic.datasource.local.url=jdbc:mysql://127.0.0.1:3306/quanxian?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.dynamic.datasource.local.password=
spring.datasource.dynamic.datasource.local.hikari.min-idle=5
spring.datasource.dynamic.datasource.local.hikari.idle-timeout=180000
spring.datasource.dynamic.datasource.local.hikari.max-pool-size= 10
spring.datasource.dynamic.datasource.local.hikari.is-auto-commit=true
spring.datasource.dynamic.datasource.local.hikari.pool-name= myHikaricp3
spring.datasource.dynamic.datasource.local.hikari.max-lifetime=180000
spring.datasource.dynamic.datasource.local.hikari.connection-timeout=300000
spring.datasource.dynamic.datasource.local.hikari.connection-test-query= select 1
spring.datasource.dynamic.datasource.local.hikari.validation-timeout= 500
1
这就完了?是的就是那么简单

 

1
2
3
很简单不需要我们再写注解反射什么的:
官网:https://www.kancloud.cn/tracy5546/dynamic-datasource/2395791
but是个收费的,下一篇我来写个免费的案例供大家借鉴

 

posted @   余生请多指教ANT  阅读(314)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示