SpringBoot 集成 Druid过程解析
作者:azuresss 发布时间:2023-02-25 12:07:59
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。更多资料说明大家可以查看官网
Github:https://github.com/alibaba/druid
Druid官方已经编写好了相关的启动器,我们可以引入启动器,然后进行相关配置就可以使用Druid的各种功能。如果只是引入Druid依赖包,没有引入Druid的SpringBoot启动器依赖,这时如果要实现使用Druid的,需要自己实现数据库连接池对象(DataSource),然后将配置信息注入到实现的连接池对象中。另外如果要使用Druid的监控功能,还需要编写Druid内置监控页面StatViewServlet对象和WebViewFilter到Spring容器中。
这里的话使用Druid启动器进行集成。
1. 在 Spring Boot 项目中加入druid-spring-boot-starter依赖
Maven
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
Gradle
compile 'com.alibaba:druid-spring-boot-starter:1.1.17'
2. 添加基本配置
在SpringBoot中配置文件中加入如下配置,就可以使用Druid连接池了
spring.datasource.url=jdbc:mysql://192.168.56.102:3306/demos?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.type=com.alibaba.druid.pool.DruidDataSource
上面两步就可以在项目中简单使用Druid连接池了,下面是数据库连接池扩展配置和监控配置
3. 添加数据库连接扩展配置
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
4. 添加Druid的监控配置
# 配置多个使用英文逗号隔开,常用的有stat,wall,loj4j,slf4j等spring.datasource.druid.filters=stat
# 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.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123456
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
spring.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,*.png,*.css,*.ico,/druid/*'
配置好后,项目启动之后,就可以打开Druid的监控界面:http://localhost:8080/druid/index.html 会要求你进行登录,上面设置的是admin/123456
登录后来到监控界面,可以查看数据路连接池信息,请求信息,SQL执行记录
来源:https://www.cnblogs.com/gangbalei/p/11573716.html


猜你喜欢
- 一、简介随着 Apple 发布 iPhone X 之后,各大手机厂商也开始模仿这种刘海屏的设计,而且刘海屏手机的用户也是越来越大,前段时间将
- 1.pom文件导入依赖<!-- kafka --><dependency> <groupId>
- 本文实例介绍了Android实现ImageView图片双击放大及缩小的相关技巧,分享给大家供大家参考,具体内容如下public class
- 本文实例为大家分享了Android购物分类效果展示的具体代码,供大家参考,具体内容如下SecondActivity.javapublic c
- 1. 控件说明SwipeRefreshLayout是google官方推荐使用的下拉刷新的控件,如果用户想通过垂直滑动手势刷新视图的内容,就可
- //Main:using System;using System.Collections.Generic;using System.Linq
- 本文介绍了详解Maven * Nexus的安装与使用,分享给大家,具体如下:1.安装1.1 安装docker并加速yum update &am
- 本文实例讲述了Android编程调用Camera和相册功能。分享给大家供大家参考,具体如下:xml:<LinearLayout xml
- 我们在使用C# 语言的Assembly.Load 来加载托管程序集并使用反射功能时,一般需要先通过Assembly.Load()
- 目录前言演示效果:实现步骤:核心点:总结前言流布局在在项目中还是会时不时地用到的,比如在搜索历史记录,分类,热门词语等可用标签来显示的,都可
- 前言项目中有需求在APP的Webview中长按图片可以保存。后来就去研究一下该怎么实现,顺便整理了一下。WebView基本配置mWvCont
- 用idea编写代码不多天,写代码的时候突然左侧目录没了,遇到这种情况相信大多数的小伙伴都是和我一样直接百度,于是网上找了很长时间,大多数都是
- import java.util.concurrent.Semaphore;public class ThreeThread {
- 如何高效地进行数组复制?如果把一个变量值复制给另外一个数组变量,那么2个变量指向托管堆上同一个引用。如果想在托管堆上创建另外的一份数组实例,
- WPF中全屏窗口,会自动隐藏任务栏。那非全屏窗口如何隐藏任务栏?甚至有没有一种场景,隐藏任务后自定义一套系统任务栏来显示?以下会分阶段讲述一
- 在安卓开发中,经常会使用到一些动画,那么在开发中,如何使用这些动画呢?帧动画:不是针对View做出一些形状上的变化,而是用于播放一张张的图片
- 前言开发中常用到主从数据库来提高系统的性能。怎么样才能方便的实现主从读写分离呢?近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离
- mq是实现代码扩展的有利手段,个人喜欢用概念来学习新知识,介绍堵塞问题的之前,先来段概念的学习。ConnectionFactory:创建co
- 前言开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧。@Slf4j(topic = "c.V
- 本文演示android中图片加载到内存首先设计界面:代码如下:<LinearLayout xmlns:android="ht