SpringBoot学习(五)—— springboot快速整合Druid
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,Druid连接池简介由阿里巴巴开源的druid连接池是目前综合实力最突出的数据库连接池,而且还提供了监控日志功能,能够分析SQL执行情况。引入druid连接池pom.xml中加入 com.ali
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
红石服务器
网络安全教育试卷b及答案
阜新网络安全员
广西福地互联网科技有限公司
国三网络技术上机考试题型
航天交换北京网络技术有限公司
江西通用软件开发代理价格
wow 代理服务器
会中网络技术有限公司
数据库锁库之后出现错误
cf网络安全限制怎么解决
a什么数据库
银行网络安全管理和防护自查报告
从数据库导多少数据会宕机
瑞安沉巢网络技术
嵌入式nosql数据库
广州市中智软件开发
网站服务器站点在国外
全球无线网络技术专利排名
方舟服务器安全区怎么设置
网络安全因素影响
MC服务器如何给所有人op
科来网络技术交流版
软件开发方法有哪两个
网络安全执法总队
管理服务器系统软件
秦皇岛安卓软件开发
计算机网络技术类包含专业
嵌入式nosql数据库
千万数据库文件下载