springboot中怎么引入druid数据源
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了springboot中怎么引入druid数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步、引入依赖 mysql
千家信息网最后更新 2025年12月02日springboot中怎么引入druid数据源
本篇文章为大家展示了springboot中怎么引入druid数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
第一步、引入依赖
mysql mysql-connector-java runtime com.alibaba druid 1.1.5
第二步、配置 application.properties 文件
#数据源配置spring.datasource.url=jdbc:mysql://192.168.0.131:3306/hongone?useAffectedRows=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#druid连接池spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# 连接池的配置信息# 初始化大小,最小,最大spring.datasource.initialSize=5spring.datasource.minIdle=5spring.datasource.maxActive=20# 配置获取连接等待超时的时间spring.datasource.maxWait=30000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.minEvictableIdleTimeMillis=300000spring.datasource.validationQuery=SELECT 1 FROM DUALspring.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# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=2000
注意 : 这里的配置根据项目需要去进行自定义,比如 超时连接时间 、慢 sql 查询时间 等
第三步、数据源配置文件
package com.hone.system.utils.druid;import com.alibaba.druid.pool.DruidDataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import javax.sql.DataSource;import java.sql.SQLException;@Configurationpublic class DruidDBConfig{ private Logger logger = LoggerFactory.getLogger(DruidDBConfig.class); @Value("${spring.datasource.url}") private String dbUrl; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.driver-class-name}") private String driverClassName; @Value("${spring.datasource.initialSize}") private int initialSize; @Value("${spring.datasource.minIdle}") private int minIdle; @Value("${spring.datasource.maxActive}") private int maxActive; @Value("${spring.datasource.maxWait}") private int maxWait; @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis; @Value("${spring.datasource.minEvictableIdleTimeMillis}") private int minEvictableIdleTimeMillis; @Value("${spring.datasource.validationQuery}") private String validationQuery; @Value("${spring.datasource.testWhileIdle}") private boolean testWhileIdle; @Value("${spring.datasource.testOnBorrow}") private boolean testOnBorrow; @Value("${spring.datasource.testOnReturn}") private boolean testOnReturn; @Value("${spring.datasource.poolPreparedStatements}") private boolean poolPreparedStatements; @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}") private int maxPoolPreparedStatementPerConnectionSize; @Value("${spring.datasource.filters}") private String filters; @Value("{spring.datasource.connectionProperties}") private String connectionProperties; /** * @Bean 声明,DataSource 对象为 Spring 容器所管理; * @Primary 表示这里定义的DataSource将覆盖其他来源的DataSource。 * StatFilter,用于统计监控信息。StatFilter的别名是stat。 * 统计SQL信息,合并统计。mergeStat是的MergeStatFilter缩写。 * 通过 DataSource 的属性 或者 * connectProperties属性来打开mergeSql功能 * StatFilter属性slowSqlMillis用来配置SQL慢的标准 * * @return */ @Bean @Primary public DataSource dataSource() { DruidDataSource datasource = new DruidDataSource(); datasource.setUrl(dbUrl); datasource.setDriverClassName(driverClassName); datasource.setUsername(username); datasource.setPassword(password); //configuration 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.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize); try { /** * 设置StatFilter,用于统计监控信息。 * StatFilter的别名是stat * */ datasource.setFilters(filters); } catch (SQLException e) { logger.error("druid configuration initialization filter : {0}",e); } datasource.setConnectionProperties(connectionProperties); return datasource; }}第四步、通过注解的方式配置监控显示页面 Servlet
import com.alibaba.druid.support.http.StatViewServlet;import javax.servlet.annotation.WebInitParam;import javax.servlet.annotation.WebServlet;/** * StatViewServlet用于展示Druid的统计信息。 * 提供监控信息展示的html页面 * 提供监控信息的JSON API * * 内置监控页面的首页是/druid/index.html * * loginUsername、loginPassword 登录用户名和密码 *//** * @Webservlet * 有两个属性可以用来表示Servlet的访问路径,分别是value和urlPatterns。value和urlPatterns都是数组形式, * 表示我们可以把一个Servlet映射到多个访问路径,但是value和urlPatterns不能同时使用。 * */@WebServlet( urlPatterns = {"/druid/*"}, initParams = { @WebInitParam(name = "loginUsername", value = "admin"), @WebInitParam(name = "loginPassword", value = "admin"), @WebInitParam(name = "resetEnable", value = "false") })public class DruidStatViewServlet extends StatViewServlet {}第五步、通过注解的方式配置采集Filter
import com.alibaba.druid.support.http.WebStatFilter;import javax.servlet.annotation.WebFilter;import javax.servlet.annotation.WebInitParam;/** * WebStatFilter用于采集web-jdbc关联监控的数据。 * 属性filterName声明过滤器的名称,可选 * 属性urlPatterns指定要过滤 的URL模式,也可使用属性value来声明.(指定要过滤的URL模式是必选属性) */@WebFilter( urlPatterns = "/*", initParams = { @WebInitParam(name = "exclusions",value = "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*") })public class DruidStatFilter extends WebStatFilter {}第六步、启动类修改
@SpringBootApplication@MapperScan("com.hone.dao") //开启mapper扫描@ServletComponentScan //开启servlet扫描public class HongoneApplication {.....}最后,启动项目进行测试 在浏览器中输入 http://localhost:8080/druid/index.html
(注意: 如果你的项目设置了访问前缀 , 访问地址问 http://localhost:8080/访问前缀/druid/index.html )
上述内容就是springboot中怎么引入druid数据源,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
配置
属性
监控
信息
统计
数据
数据源
时间
页面
项目
最小
内容
别名
前缀
功能
单位
大小
技能
文件
方式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
公司数据库怎么做
dba数据库加mysql
pg数据库中给用户授权
专科信息网络安全升本
网络安全应用在哪个方面
邮件服务器的搭建论文
谷歌软件开发过程
数据库 qstring 乱码
嘉定区营销软件开发服务保障
内蒙古创新网络技术服务怎么样
杭州上东软件开发有限公司
榆林软件开发规范
it互联网科技
万方数据库查全率
电脑学习网络技术
如何看懂监控服务器自检
国土局 网络安全管理制度
软件开发过程的质量管理
b5纸画网络安全手抄报
怎么查看服务器内存和cpu
停车场收费系统数据库
L镜根服务器
安全工程跨考网络安全
神秘服务器
mc天籁服务器
提高网络安全创建美好生活手抄报
象山软件开发联系方式
阳江通讯软件开发供应商家
软件开发服务计量单位填什么
哪个数据库是不属于全文数据库