SpringBoot学习(五)—— springboot快速整合Druid
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,Druid连接池简介由阿里巴巴开源的druid连接池是目前综合实力最突出的数据库连接池,而且还提供了监控日志功能,能够分析SQL执行情况。引入druid连接池pom.xml中加入 com.ali
千家信息网最后更新 2025年12月03日SpringBoot学习(五)—— springboot快速整合Druid
Druid连接池
简介
由阿里巴巴开源的druid连接池是目前综合实力最突出的数据库连接池,而且还提供了监控日志功能,能够分析SQL执行情况。
引入druid连接池
pom.xml中加入
com.alibaba druid 1.1.21 application.properties中加入
# druidspring.datasource.type=com.alibaba.druid.pool.DruidDataSource# 连接池初始化大小,最小,最大spring.datasource.initialSize=10spring.datasource.minIdle=10spring.datasource.maxActive=30# 连接等待超时时间spring.datasource.maxWait=60000# 多久检测需要关闭的空闲连接spring.datasource.timeBetweenEvictionRunsMillis=60000# 一个连接在池中最小生存的时间spring.datasource.minEvictableIdleTimeMillis=300000# 校验SQL,Oracle配置 spring.datasource.validationQuery=SELECT 1 FROM DUAL,如果不配validationQuery项,则下面三项配置无用spring.datasource.validationQuery=SELECT 'x'spring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=false# 打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.poolPreparedStatements=truespring.datasource.maxPoolPreparedStatementPerConnectionSize=20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,wall用于防火墙spring.datasource.filters=stat,wall,log4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 合并多个DruidDataSource的监控数据spring.datasource.useGlobalDataSourceStat=true注:之前已经配置好了mysql,mybatis,这里没有重复写了
代码实战
新增了一个DruidFilter.java来配置内置的监控
DruidFilter.java
package com.example.config;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class DruidFilter { @Bean public ServletRegistrationBean druidStatView() { //指定路径进入内置监控页面 ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); //IP白名单: servletRegistrationBean.addInitParameter("allow", "127.0.0.1"); //IP黑名单 servletRegistrationBean.addInitParameter("deny", "192.168.1.73"); //登录查看信息的账号密码. //servletRegistrationBean.addInitParameter("loginUsername", "admin"); //servletRegistrationBean.addInitParameter("loginPassword", "123456"); //是否能够重置数据. servletRegistrationBean.addInitParameter("resetEnable", "true"); return servletRegistrationBean; } @Bean public FilterRegistrationBean druidWebStatFilter() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); //添加不需要忽略的格式信息. filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; }}注:我之前就已经配置好了spring security,如果在和其他教程一样配置druid的账号密码,会导致输入druid的账号密码后无法跳转进入内置监控页面,我知道有很多方法可以避免,但那都需要额外增加代码来判断绕过,既然spring security已经有了账号权限,何必额外非得给druid单独增加一套账号权限,把 /druid/* 路径配置在spring security中,公用已有的账号权限不更好嘛。所以我没有单独配置。
还有这只是常用的配置,如若需要进一步了解详细的配置
内置监控页面配置详情,Web关联配置详情
效果图如下
恩恩,还自带阿里云的广告,果然是阿里的开源产品
配置
监控
账号
密码
数据
权限
页面
阿里
最小
代码
信息
功能
大小
时间
详情
路径
中加
统计
不配
巴巴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全监测大厅布局设计
cc域名服务器
软件开发转正ppt怎么写
服务器ip地址连接不了
现在的网络服务器
4子星服务器节点是独立的嘛
管理与配置ftp服务器步骤
有13个根服务器更重要
全国第四届网络安全大会主题
保山哪有软件开发定制
哪些网络安全对自己非常重要
mysql英汉词典数据库
sql用语句如何备份数据库
数据库查询的笔试题
合肥2020网络安全攻防
销售易软件开发
软件开发后要先进行
安装新中大数据库装不上
怎样看数据库表的字段设置
焦作天龙网络技术
计算机网络技术及应用备课
上海华为软件开发在哪里
java获取数据库名
数据库表脚本
plc软件开发待遇
网络技术与安全 课程
苏州软件开发app一般要多少钱
吉林潮流软件开发价格服务标准
计算机网络安全的三大特征
深圳由你网络技术公司