Springboot mybatis plus druid多数据源解决方案 dynamic-datasource的使用详解
依赖
com.baomidou dynamic-datasource-spring-boot-starter 2.5.0 p6spy p6spy 3.9.1 com.alibaba druid-spring-boot-starter 1.1.21 com.baomidou mybatis-plus-boot-starter 3.3.1.tmp
p6spy配置文件spy.properties,有性能影响,生产环境建议关闭
#3.2.1以上使用 modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory #3.2.1以下使用或者不配置 #modulelist=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory #自定义日志打印 logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger #日志输出到控制台 appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger #使用日志系统记录sql #appender=com.p6spy.engine.spy.appender.Slf4JLogger #设置p6spydriver代理 deregisterdrivers=true #取消JDBCURL前缀 useprefix=true #配置记录Log例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset. excludecategories=info,debug,result,commit,resultset #日期格式 dateformat=yyyy-MM-ddHH:mm:ss #实际驱动可多个 #driverlist=org.h2.Driver #是否开启慢SQL记录 outagedetection=true #慢SQL记录标准2秒 outagedetectioninterval=5
配置文件application.yml
server: port:8080 spring: datasource: dynamic: p6spy:true#默认false,建议线上关闭。 primary:master#设置默认的数据源或者数据源组,默认值即为master datasource: master: url:jdbc:mysql://localhost:3306/bdata?serverTimezone=GMT%2B8&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&allowMultiQueries=true username:root password:root driver-class-name:com.mysql.cj.jdbc.Driver slave: url:jdbc:mysql://localhost:3306/lmkstudy?serverTimezone=GMT%2B8&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true&allowMultiQueries=true username:root password:root driver-class-name:com.mysql.cj.jdbc.Driver druid: password:root username:root #初始化连接大小 initial-size:5 #最大连接池数量 max-active:20 #最小连接池数量 min-idle:3 #配置获取连接等待超时的时间单位毫秒 max-wait:60000 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 time-between-eviction-runs-millis:60000 #配置一个连接在池中最小生存的时间,单位是毫秒 min-evictable-idle-time-millis:300000 #测试连接 validation-query:select #申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性 test-while-idle:true #获取连接时执行检测,建议关闭,影响性能 test-on-borrow:false #归还连接时执行检测,建议关闭,影响性能 test-on-return:false #打开PSCache,并且指定每个连接上PSCache的大小 pool-prepared-statements:true #配置监控统计拦截器防火墙日志配置 #stat监控数据库性能 #wall用于防火墙 #日志slf4jlogback #log4j #log4j2 #配置多个英文逗号分隔 filters:stat,wall,slf4j max-pool-prepared-statement-per-connection-size:20 #合并多个DruidDataSource的监控数据 use-global-data-source-stat:true #通过connectProperties属性来打开mergeSql功能;慢SQL记录SQL优化 connect-properties:druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 #===========监控配置=========== #WebStatFilter配置,说明请参考DruidWiki,配置_配置WebStatFilter web-stat-filter: #是否启用StatFilter默认值false enabled:true #拦截所有的 url-pattern:/* #排除一些不必要的url,比如*:js,/jslib/*等等: exclusions:"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" #关闭和开启session统计功能默认关闭 #session-stat-enable:true #sessionStatMaxCount是1000个 #session-stat-max-count:1000 #配置principalSessionName,使得druid能够知道当前的session的用户是谁 #principal-session-name: #StatViewServlet配置,说明请参考DruidWiki,配置_StatViewServlet配置 stat-view-servlet: #是否启用StatViewServlet默认值true enabled:true url-pattern:/druid/* #界面上有一个重置功能执行这个操作之后,会导致所有计数器清零,重新计数建议false reset-enable:false #登录的后台的用户名,密码 login-username:admin login-password:admin mybatis-plus: type-aliases-package:com.site.datasource.entity mapper-locations:classpath*:mapper/*.xml
service层添加注解@DS(“slave”),选定数据源
@DS("slave") @Service("userService") publicclassUserServiceImplextendsServiceImplimplementsUserService{ }
启动类上添加@SpringBootApplication(exclude=DruidDataSourceAutoConfigure.class)
@SpringBootApplication(exclude=DruidDataSourceAutoConfigure.class) publicclassThreadApplication{ publicstaticvoidmain(String[]args){ SpringApplication.run(ThreadApplication.class,args); } }
遇到的坑:记得要去掉DruidConfig这个文件,不然会报错
到此这篇关于Springbootmybatisplusdruid多数据源解决方案dynamic-datasource的使用的文章就介绍到这了,更多相关Springbootmybatisplusdruid多数据源内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。