SpringBoot+druid+多数据源示例

-
基于SpringBoot框架,结合druid数据库连接池,实现多数据源自动切换的一个示例
关于springboot的druid多数据源的datasource创建的问题_course
2019-11-22在做springboot项目的接口单元测试时,需要对接口进行集成测试,发现了一个问题,每测一个接口,都会创建一个datasource,但是创建到30个就关闭了,由于接口的数量大于30个,所以后面的接口
102KB
springboot druid 多数据源demo
2017-12-05springboot开发,使用阿里druid-spring-boot-starter包,配置的多数据源demo,可自由加入多个数据源
- SpringBoot + Mybatis + Druid 配置多数据源 2592020-05-10SpringBoot + Mybatis + Druid 配置多数据源 前言 随着数据规模并发量的不断增加,单个数据库承受不了这么大的压力,因此一个项目使用多个数据库也越来越重要,当然使用数据库的模式可能不一样,比如说主从模式、分布式模式。不管是哪种模式都需要对多个数据库进行读写,这时候就得在项目中配置多个数据源了。在Java项目的开发中,目前最常用的数据操作框架是 Mybatis,开发框架也都基本用上了Spring Boot。而Spring Boot整合Mybatis实现多数据源有两种方式:分包 和
Springboot Druid +mybatis 多数据源监控,只能监控到主库SQL,从库不行_course
2018-07-21配置如下 spring: circle-datasource: #从库 #123.207.23.166:3306 name: db url: jdbc:mysql://119.29.208.67:3307/ws?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true username: root password: ***** driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource minIdle: 5 maxActive: 100 initialSize: 10 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 50 removeAbandoned: true spring: datasource: #主库 #123.207.23.166:3306 name: db url: jdbc:mysql://119.29.208.67:3306/ws?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true username: momo password: ***** driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource minIdle: 5 maxActive: 100 initialSize: 10 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 'x' testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 50 removeAbandoned: true filters: stat connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据 druidLoginName: momo # 登录druid的账号 druidPassword: momo # 登录druid的密码 ---------------------------------------------- @Bean(name="circleDataSource",destroyMethod = "close", initMethod="init") public DataSource dataSource(){ DruidDataSource datasource = new DruidDataSource(); try { datasource.setUrl(this.url); datasource.setDbType(type); datasource.setUsername(username); datasource.setPassword(password); datasource.setDriverClassName(driverClassName); datasource.setInitialSize(initialSize); datasource.setMinIdle(minIdle); datasource.setMaxActive(maxActive); datasource.setMaxWait(maxWait); datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); datasource.setValidationQuery(validationQuery); datasource.setTestWhileIdle(testWhileIdle); datasource.setTestOnBorrow(testOnBorrow); datasource.setTestOnReturn(testOnReturn); datasource.setPoolPreparedStatements(poolPreparedStatements); datasource.setFilters(filters); datasource.setUseGlobalDataSourceStat(true); } catch (Exception e) { logger.error("druid configuration initialization filter", e); } return datasource; } ---------------------主库------- @Bean(name="dataSource",destroyMethod = "close", initMethod="init") @Primary //不要漏了这 public DataSource dataSource(){ DruidDataSource datasource = new DruidDataSource(); try { datasource.setUrl(this.dbUrl); datasource.setDbType(dbType); datasource.setUsername(username); datasource.setPassword(password); datasource.setDriverClassName(driverClassName); datasource.setInitialSize(initialSize); datasource.setMinIdle(minIdle); datasource.setMaxActive(maxActive); datasource.setMaxWait(maxWait); datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); datasource.setValidationQuery(validationQuery); datasource.setTestWhileIdle(testWhileIdle); datasource.setTestOnBorrow(testOnBorrow); datasource.setTestOnReturn(testOnReturn); datasource.setPoolPreparedStatements(poolPreparedStatements); datasource.setFilters(filters); datasource.setUseGlobalDataSourceStat(true); } catch (SQLException e) { logger.error("druid configuration initialization filter", e); } return datasource; } ///////// 下面是druid 监控访问的设置 ///////////////// @Bean public ServletRegistrationBean druidServlet() { ServletRegistrationBean reg = new ServletRegistrationBean(); reg.setServlet(new StatViewServlet()); reg.addUrlMappings("/druid/*"); //url 匹配 // reg.addInitParameter("allow", "192.168.16.110,127.0.0.1"); // IP白名单 (没有配置或者为空,则允许所有访问) // reg.addInitParameter("deny", "192.168.16.111"); //IP黑名单 (存在共同时,deny优先于allow) reg.addInitParameter("loginUsername", this.druidLoginName);//登录名 reg.addInitParameter("loginPassword", this.druidPassword);//登录密码 reg.addInitParameter("resetEnable", "false"); // 禁用HTML页面上的“Reset All”功能 return reg; } @Bean(name="druidWebStatFilter") public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); filterRegistrationBean.setFilter(new WebStatFilter()); filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); //忽略资源 filterRegistrationBean.addInitParameter("profileEnable", "true"); filterRegistrationBean.addInitParameter("principalCookieName", "USER_COOKIE"); filterRegistrationBean.addInitParameter("principalSessionName", "USER_SESSION"); return filterRegistrationBean; } ----------------------------------------------------  从库在数据源是监控了,但是sql没有 
利用com.alibaba.druid.pool.DruidDataSource+SpringMVC+Spring+mybaits如何实现多数据源的配置_course
2015-07-01<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-meth
druid配置了多数据源、分布式事务 监控报错,有图,求解_course
2017-07-25大家看下哪里出问题了吗 把removeAbandoned改成false ,应该这里就不会监控了,所以也就不会报错了
- SpringBoot-基于Druid、mybatis多数据源管理配置 1312020-08-03在开发过程中经常会使用到多数据,比如一个框架库多个业务库、读写分离等。下面我在 Springboot、Druid、mybatis 的基础上,进行动态切换数据库封装(代码可能会存在性能等方面的问题,希望大家多多指出)。 思路步骤: 在 springboot 配置文件中,进行多数据源数据库配置。 根据配置文件进行数据源初始化,获取对应的 SQLSessionFactroy。 定义数据源标识注解,用于标识该 mapper 属于哪个数据源。 定义 SessionFactroy,用于获取 mapper 对象 创建
-
下载
专利文献信息在技术创新中的应用
专利文献信息在技术创新中的应用
-
下载
嵌入式系统开发概述.mmap
嵌入式系统开发概述.mmap
-
学院
python办公自动化技巧
python办公自动化技巧
-
下载
Qt操作XML文档(增删改查)
Qt操作XML文档(增删改查)
-
下载
PLC编程.rar PLC编程.rar
PLC编程.rar PLC编程.rar
-
下载
结构力学建模(COMSOL)
结构力学建模(COMSOL)
-
学院
Redis数据库入门与使用
Redis数据库入门与使用
-
下载
西门子PLC实例教程777个(密码1234).zip
西门子PLC实例教程777个(密码1234).zip
-
下载
Kmeans_demo.zip
Kmeans_demo.zip
-
博客
(必背)670. 最大交换(贪心法)
(必背)670. 最大交换(贪心法)
-
学院
【数据分析-随到随学】Hive详解
【数据分析-随到随学】Hive详解
-
博客
都2021年了,你还不多学几种创建型模式,创建个对象?
都2021年了,你还不多学几种创建型模式,创建个对象?
-
学院
计算机网络基础
计算机网络基础
-
博客
CSS引入方式,选择器和常用样式设置
CSS引入方式,选择器和常用样式设置
-
学院
微服务系列第七十一季-Spring入门
微服务系列第七十一季-Spring入门
-
博客
安装pip和requests库 2021版
安装pip和requests库 2021版
-
博客
PHP深入理解-PHP架构布局
PHP深入理解-PHP架构布局
-
博客
soul网关案例学习:http代理大致流程
soul网关案例学习:http代理大致流程
-
学院
转行做IT-第1章 计算机基础
转行做IT-第1章 计算机基础
-
下载
专利挖掘、撰写与转化应用
专利挖掘、撰写与转化应用
-
下载
GlobeLand30中国区域土地利用数据3年完整成品数据(2000-2010-2020)下载地址
GlobeLand30中国区域土地利用数据3年完整成品数据(2000-2010-2020)下载地址
-
下载
VS2019谷歌V8引擎8.2版本,编译好的Release版DLL和LIB,和测试demo
VS2019谷歌V8引擎8.2版本,编译好的Release版DLL和LIB,和测试demo
-
博客
STM32——PS2遥控手柄
STM32——PS2遥控手柄
-
学院
2021最新Kubernetes(k8s)集群实战精讲
2021最新Kubernetes(k8s)集群实战精讲
-
学院
单片机完全学习课程全五季套餐
单片机完全学习课程全五季套餐
-
学院
量化高频交易系统tick数据采集
量化高频交易系统tick数据采集
-
博客
PHP响应button的onclick事件
PHP响应button的onclick事件
-
学院
Selenium3分布式与虚拟化
Selenium3分布式与虚拟化
-
下载
Edward M. Purcell - Electricity and Magnetism libgen.lc.djvu
Edward M. Purcell - Electricity and Magnetism libgen.lc.djvu
-
博客
Vue3学习(二)新建项目
Vue3学习(二)新建项目