首页 > 其他分享 >SpringBoot 配置多数据源 dynamic-datasource(多库)

SpringBoot 配置多数据源 dynamic-datasource(多库)

时间:2023-10-03 14:03:43浏览次数:40  
标签:SpringBoot spring dynamic druid datasource 数据源 db01 id

1.Maven 包


com.baomidou

dynamic-datasource-spring-boot-starter

3.1.1

2.配置文件

###MySQL druid多数据源配置(纯粹多库)###

#去除durid配置

spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

#指定默认数据源(必须配置)

spring.datasource.dynamic.primary=db01

#设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源.

spring.datasource.dynamic.strict=false

#db01库

spring.datasource.dynamic.datasource.db01.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.dynamic.datasource.db01.url=jdbc:mysql://X.X.X.X:3306/DB-Name?serverTimezone=GMT&useSSL=false

spring.datasource.dynamic.datasource.db01.username=XXX

spring.datasource.dynamic.datasource.db01.password=XXXX

#db02库

spring.datasource.dynamic.datasource.db02.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.dynamic.datasource.db02.url=jdbc:mysql://X.X.X.X:3306/DB-Name?serverTimezone=GMT&useSSL=false

spring.datasource.dynamic.datasource.db02.username=XXX

spring.datasource.dynamic.datasource.db02.password=XXXX

#数据源基础配置

spring.datasource.dynamic.druid.initial-size=5

spring.datasource.dynamic.druid.min-idle=5

spring.datasource.dynamic.druid.max-active=20

# 配置获取连接等待超时的时间

spring.datasource.dynamic.druid.max-wait=6000

# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

spring.datasource.dynamic.druid.time-between-eviction-runs-millis=60000

# 配置一个连接在池中最小生存的时间,单位是毫秒

spring.datasource.dynamic.druid.min-evictable-idle-time-millis=300000

spring.datasource.dynamic.druid.validation-query=SELECT 1 FROM DUAL

spring.datasource.dynamic.druid.test-while-idle=true

spring.datasource.dynamic.druid.test-on-borrow=false

spring.datasource.dynamic.druid.test-on-return=false

# 打开PSCache,并且指定每个连接上PSCache的大小

spring.datasource.dynamic.druid.pool-prepared-statements=true

spring.datasource.dynamic.druid.max-pool-prepared-statement-per-connection-size=20

# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

spring.datasource.dynamic.druid.filters=stat,wall,log4j

# 通过connectProperties属性来打开mergeSql功能;慢SQL记录

spring.datasource.dynamic.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

3.示例代码

@Mapper

@DS("db01")

public interface InfoDao {

@Select("SELECT name,address FROM table_name WHERE id = #{id}")

> getInfos(@Param("id") int id);

}

==============================================

@Mapper

@DS("db02")

public interface UserDao {

@Select("SELECT xx,xx,xx FROM table_name WHERE id = #{id}")

> getUser(@Param("id") int id);

}


标签:SpringBoot,spring,dynamic,druid,datasource,数据源,db01,id
From: https://blog.51cto.com/u_16270487/7691785

相关文章

  • spring boot 多数据源切换(dynamic-datasource-spring-boot-starter)
    官网 https://dynamic-datasource.com/guide/集成MybatisPlus https://dynamic-datasource.com/guide/integration/MybatisPlus.html#基础介绍自动读写分离 https://dynamic-datasource.com/guide/advance/Read-Write-Separation.html本地事物(不支持spring事务),使用@DSTransac......
  • JDWP调试SpringBoot程序
    JDWP调试SpringBoot程序<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-loader</artifactId></dependency>java-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5050-jar&......
  • Springboot+Echarts+Element(二)
    今天主要是记录一些问题,主要是在使用vue通过axios发送请求的时候,起初我认为需要把vue和springboot整合到一块但是在听完课之后发现并不需要,因为vue的目的是实现前后端分离的开发,因此两个项目可以同时运行,调整vue项目就是改前端代码,调整springboot就是改后端代码,前端只负责发送请......
  • 关于在springboot中开发mybatis来实现前后端分离
    一、分层架构Controller:负责处理用户的请求和响应get请求与post请求的区别:get请求需要的在http协议上输入参数,而post请求不需要在http协议上输入参数,要在请求体中寻找参数。 在一次请求与响应过程中,首先浏览器发起一次请求到服务器,服务器中会有一个前端控制器处理请求,处理......
  • springboot整合sentinel,sleuth
     1. 整合sentinel流控当需要对一个接口进行流量监控时可以使用springboot整合sentinel  (1)在common模块中导入依赖spring-cloud-starter-alibaba-sentinel;  (2)下载sentinel控制台并启动;  (3)配置sentinel控制台地址信息spring.cloud.sentinel.transport.dashboa......
  • springboot第40集:架构师写的代码,那叫一个优雅
    事务的隔离性上,从低到高可能产生的读现象分别是:脏读、不可重复读、幻读。脏读指读到了未提交的数据。不可重复读指一次事务内的多次相同查询,读取到了不同的结果。幻读师不可重复读的特殊场景。一次事务内的多次范围查询得到了不同的结果。通过在写的时候加锁,可以解决脏读。通过在......
  • springboot第40集:架构师写的代码,那叫一个优雅
    事务的隔离性上,从低到高可能产生的读现象分别是:脏读、不可重复读、幻读。脏读指读到了未提交的数据。不可重复读指一次事务内的多次相同查询,读取到了不同的结果。幻读师不可重复读的特殊场景。一次事务内的多次范围查询得到了不同的结果。通过在写的时候加锁,可以解决脏读。通过在读......
  • [SpringBoot 1] 自动装配和Run方法
    SpringBoot1阶段:1SpringBoot自动装配build.gradle中放依赖核心依赖,有很多启动器(spring-boot-start-xxx)@SpringBootApplication@SpringBootConfiguration@Configuration@Component@EnableAutoConfiguration@AutoConfiguration......
  • springboot 与 Redis整合
    SpringBoot操作数据:Spring-datajpajdbcmongodbredis!SpringData也是和SpringBoot齐名的项目!说明:在SpringBoot2.X之后,原来使用的jedis被替换成了lettucejedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用jedispool连接池,更新BIO模式lettuce:采用ne......
  • springboot web开发静态资源的映射规则
    前言我们之间介绍过SpringBoot自动配置的原理,基本上是如下:xxxxAutoConfiguration:帮我们给容器中自动配置组件;xxxxProperties:配置类来封装配置文件的内容;web开发中都在org.springframework.boot.autoconfigure.web包下今天看的静态资源映射规则都在org.springframework.boot.aut......