当前位置: 首页 > news >正文

druid连接池

连接池

数据库连接池是一个存储数据库连接的缓冲区,用于重复使用这些连接,以避免在每次请求时都创建新的数据库连接。连接到数据库的过程是相对耗时的,因此连接池可以显著提高应用程序的性能。它们还有助于防止应用程序超负荷地创建太多数据库连接,从而减轻数据库服务器的负担。

druid的Maven依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version> <!-- 使用最新版本 -->
</dependency>
通常需要引入log4j,不导入可能会报java.lang.ClassNotFoundException: org.apache.log4j.Priority错误<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>

druid的Springboot配置

spring: datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8username: 数据库用户名password: 数据库密码type: com.alibaba.druid.pool.DruidDataSource#druid配置# 初始化大小initiaSize: 5#最小线程minIdle: 5#最大线程maxActive: 20#获取连接的等待超时时间maxWait: 60000#多久进行一次检测,检测需要关闭的空闲连接,单位毫秒timeBetweenEvictionRunsMillis: 60000#配置一个连接在池中的最小生存时间minEvictableIdleTimeMillis: 30000# 检测空闲连接的可用性validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: false# 预处理语句池化(提升高频 SQL 执行效率)pool-prepared-statements: true        # 启用缓存max-pool-prepared-statement-per-connection-size: 20  # 单连接缓存数max-open-prepared-statements: 100     # 全局缓存上限#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入(防火墙)filters: stat,wall,log4j# 合并多个DruidDataSource的监控数据useGlobalDataSourceStat: true# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connectionProperties: 	druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

配置类

需要自行添加到容器中并绑定属性

@Configuration
public class DruidConfig{@Bean@ConfigurationProperties(prefix="Spring.datasource")public DataSource druidDataSource(){return new DruidDataSource();}
}

配置后台监控

Druid具有监控功能,有一个后台监控页面,配置后即可使用

监控页面页面:http://localhost:8080/druid/

	// 后台监控@Beanpublic ServletRegistrationBean statViewServlet() {ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");   // 设置后台路径HashMap<String, String> initParams = new HashMap<>();initParams.put("loginUsername", "admin");   // 登录账号initParams.put("loginPassword", "123456");  // 登录密码initParams.put("allow", "");    // 允许所有访问bean.setInitParameters(initParams);     // 设置初始化参数return bean;}

配置web监控过滤器

	// web监控过滤器@Beanpublic FilterRegistrationBean webStatFilter() {FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();bean.setFilter(new WebStatFilter());Map<String, String> initParams = new HashMap<>();initParams.put("exclusions", "*.js, *.css, /druid/*");  // 过滤排除bean.setInitParameters(initParams);return bean;}
http://www.dtcms.com/a/285214.html

相关文章:

  • Xss-labs 靶场lever1~lever8通关练习
  • 第12章 存储类、链接和内存管理
  • window下 wsl 下怎么配置 kimi-k2 驱动 Claude Code
  • 网络通信原理
  • 订货系统能接金蝶吗是什么?
  • FreeRTOS—中断管理
  • 一文学会c++vector
  • Web前端:JavaScript鼠标事件
  • 实习十二——协议分层
  • pytorch小记(三十一):深入解析 PyTorch 权重初始化:`xavier_normal_` 与 `constant_`
  • 基于selenium的pyse自动化测试框架
  • MyUI1.0全新现代化 Vue.js 组件库框架上线
  • CAD断层扫描三维重建插件
  • ubuntu启用ssh
  • HD现代机器人与TESOLLO合作推出工业自动化双臂机器人解决方案
  • 控制台输出的JAVA格斗小游戏-面向对象
  • properties中文乱码
  • 细菌实验入门:浓度测定与菌种鉴定技术详解
  • 累和,累积,斐波拉契
  • 如何统一分销价格体系实战指南?
  • 验证损失判断过拟合情况
  • echart设置trigger: ‘axis‘不显示hover效果
  • c#笔记之方法的形参列表以及方法重载
  • 智能外呼系统应用场景
  • Windows 11清理C盘方法大全:磁盘清理/禁用休眠/系统还原点/优化大师使用教程
  • PostgreSQL 中的 pg_trgm 扩展详解
  • docker 安装nacos
  • Content-Type 请求头
  • 求解偏微分方程的傅里叶积分解
  • 【C语言进阶】内存函数