springboot 使用Druid数据库连接池
Druid 阿里开源的数据库连接池
选择的理由:
- Druid 经历了阿里双十一的场景,足以可见其性能。
- Druid 有完整的监控,可以实时监控数据库状态及sql的执行时间。
- 提供有丰富的监控器,自定义监控器也很方便。
springboot 默认的连接池是HikariCP,使用Druid :
- 引入jar 包。
<!--数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency>
- 在application.properties 里配置相关属性:
#连接池配置 #<!-- 配置初始化大小、最小、最大 --> spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=10 spring.datasource.druid.max-active=20#<!-- 配置获取连接等待超时的时间 60秒--> spring.datasource.druid.max-wait=60000 #<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> spring.datasource.druid.time-between-eviction-runs-millis=60000 #<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> spring.datasource.druid.min-evictable-idle-time-millis=60000 #spring.datasource.druid.max-evictable-idle-time-millis=90000#是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。 spring.datasource.druid.max-open-prepared-statements= -1 #检测连接是否有效的语句,及超时时间 spring.datasource.druid.validation-query=SELECT 1 spring.datasource.druid.validation-query-timeout=30 #申请连接是否检测,归还连接是否检测 ,空闲是否检测 spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.test-while-idle=true#druid 日志输出 spring.datasource.druid.filter.slf4j.enabled=true spring.datasource.druid.filter.slf4j.statement-create-after-log-enabled=false spring.datasource.druid.filter.slf4j.statement-close-after-log-enabled=false spring.datasource.druid.filter.slf4j.result-set-open-after-log-enabled=false spring.datasource.druid.filter.slf4j.result-set-close-after-log-enabled=false#插件配置 监控统计用的filter:stat #日志用的filter:log4j #防御sql注入的filter:wall spring.datasource.druid.filters=stat,wall# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter #sql 合并,慢sql展示监控 超过20秒为慢sql spring.datasource.druid.filter.stat.merge-sql=true spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.slow-sql-millis=20000spring.datasource.druid.web-stat-filter.enabled= true spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/* spring.datasource.druid.web-stat-filter.session-stat-enable=true spring.datasource.druid.web-stat-filter.session-stat-max-count=10 #spring.datasource.druid.web-stat-filter.principal-session-name=admin #spring.datasource.druid.web-stat-filter.principal-cookie-name=admin #spring.datasource.druid.web-stat-filter.profile-enable=true# StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置 spring.datasource.druid.stat-view-servlet.enabled= true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.reset-enable=false spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin #Ip白名单 黑名单 黑名单优先,黑名单中存在就不可访问。 #spring.datasource.druid.stat-view-servlet.allow= #spring.datasource.druid.stat-view-servlet.deny=# AOP 监控拦截切入点 spring.datasource.druid.aop-patterns=com.example.demo.mapper.*,com.example.demo.service.*,com.example.demo.web.*
- 启动项目进行访问。可以看到执行 的sql的详细信息。
这里输出的数据库日志采用logback,详细配置如下:
<!-- druid 数据库连接池日志输出--><appender name="druidSqlRollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender" ><encoder><pattern>[%d{yyyy-MM-dd HH:mm:ss}] %-5level %L %M - %msg%xEx%n</pattern></encoder><file>${ROOT_LOG_DIR}/druid-sql.log</file><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>TRACE</level></filter><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${ROOT_LOGBAK_DIR}/%d{yyyy-MM-dd}/api-%d{yyyy-MM-dd}.%i.txt</fileNamePattern><!-- 单个日志文件最多 100MB, 100天的日志周期,最大不能超过1000GB --><maxFileSize>100MB</maxFileSize><maxHistory>100</maxHistory><maxHistory>100GB</maxHistory></rollingPolicy></appender>
<!--记录druid-sql的记录--><logger name="druid.sql.Statement" level="debug" additivity="false"><appender-ref ref="druidSqlRollingFile"/></logger>
- 可以看到日志输出:
springboot 使用Druid数据库连接池相关推荐
- Druid数据库连接池监控的使用
Druid数据库连接池 1. Druid是什么? Druid是Java语言中最好的数据库连接池,由阿里巴巴团队开发.Druid能够提供强大的监控和扩展功能. github地址为http ...
- SpringBoot整合Druid连接池
SpringBoot整合Druid连接池 前言 第一种整合方式 自定义的方式 引入Druid依赖 配置文件 配置类 实现监控功能 开启SQL防火墙 实现web应用 访问Druid页面需登录 第二种整合 ...
- Druid数据库连接池就这么简单
前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...
- Druid数据库连接池就是这么简单
前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并不够用阿~当时学习C3P0的时候,觉得这 ...
- Druid数据库连接池超时问题com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10
问题描述: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 1000, active 10at com.alibab ...
- Druid数据库连接池使用参考
一:添加相应依赖 druid-1.0.9.jar: mysql-connector-java-5.1.48-bin.jar 二:编写properties文件 放置位置在src中: driverClas ...
- log4j mysql 异步_spring boot:配置druid数据库连接池(开启sql防火墙/使用log4j2做异步日志/spring boot 2.3.2)...
一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: http ...
- spring boot、mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问
spring boot.mybatis集成druid数据库连接池,实现mysql cluster HA负载均衡访问 1.原理实现介绍 本质来说使用连接池是为了节省创建.关闭数据库连接的资源消耗,从而提 ...
- 使用Druid数据库连接池整合MyBatis Plus时,出现Error attempting to get column 'startTime' from result set. 类似错误
问题描述: 使用Druid数据库连接池整合MyBatis Plus3.2.0时,出现Error attempting to get column 'startTime' from result set ...
最新文章
- centeros php pgsql,centos php添加pgsql扩展
- 【Python】学习笔记总结4(Python模块)
- 记忆化搜索,FatMouse and Cheese
- 人脸识别进水_万维|人脸识别闸机怎么选?
- 深度剖析数据中台提供的数据服务
- 演示FilterConfig接口的getInitParameter(String name)方法
- Netty工作笔记0047---Http服务程序实例
- Atitit 常见的树形结构 红黑树 二叉树 B树 B+树 Trie树 attilax理解与总结
- 我对Backbone的认识
- 按照计算机系统结构分类存储器可分为,存储器分类,存储器的分级结构
- 说出我的故事,献给正在迷茫的你
- 太极图正确画法_八卦太极图的正确画法
- 使用单链表制作电子通讯录
- Android 自定义心形图片
- 安卓辅助功能获取控件id
- RSD处理高分5号高光谱(GF5 AHSI)数据(四)——从地物光谱搜索高光谱数据集
- 1.无线通信:传播和衰落
- linux工具之jq
- rust山洞造家坐标_魔兽世界怀旧服部落1-60任务流程攻略 任务怪坐标位置汇总
- [资源] Visual Studio 2015正式版离线iso及在线下载,附专业版和企业版可用key!
热门文章
- 物联卡一直显示待激活怎么办_物联卡开始要求活体认证,这种纯流量卡你以后还管乱使用吗?...
- C语言调用so动态库的两种方式
- OBS 虚拟演播系统 - 视频学习笔记
- 移动端特点(重点)~~~
- Java 将带有小数点的字符串转成Integer类型数值
- ESP32模数转换 ADC(光感检测)
- Pic16f1828 1829串口收发
- 帕拉迪Core4A-UTM堡垒机使用手册
- mac电脑安装python_-mac电脑怎么安装python
- 几个javascript框架对比(vue,react,Angular等),如何选择?