springboot中怎么引入druid数据源
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,本篇文章为大家展示了springboot中怎么引入druid数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。第一步、引入依赖 mysql
千家信息网最后更新 2024年11月18日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安全错误
数据库的锁怎样保障安全
军职在线网络技术与应用
论述网络安全的防与治
平昌冬奥会网络安全
我的世界服务器免费开
吉林智能网络技术服务售后服务
怎么用服务器ip地址搭建网站
网络安全法 迫切需要
000938网络安全龙头
软件开发ppt 管理经验
工信部就网络安全问题约谈
如何把源码传到数据库
万方数据库请求原文传递是否收费
省级土地利用总体规划数据库标准
信息网络安全情况
web服务器的高并发
更改数据库编码格式
网络安全发言稿800字
幻塔分服务器
井盖伯才网络技术支持
列族数据库选择
查询sql 数据库记录
新氧科技是互联网公司吗
数据库基础35是什么意思
数据库无法连上
陕西软件开发有限公司
大兴区网络技术服务职责
怎么统计去掉重复数据库
图书馆订阅的电子期刊数据库
无线传感器网络技术自考试卷
泰兰德服务器