Spring Boot3整合Druid开启监控能力

   Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能

  Spring Boot整合Druid方式有两种1、自定义方式 2、引入 starter 方式

一、引入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.1.7</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.ld</groupId>
	<artifactId>druid-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<!--web开发依赖 非必须-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
 
		<!--druid starter 这里要注意 -->
		<!--原来的druid-spring-boo-starter对于spring boot3的支持不够 需要引入以下依赖 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid-spring-boot-3-starter</artifactId>
			<version>1.2.20</version>
		</dependency>
		<!--mysql驱动-->
		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<scope>runtime</scope>
		</dependency>
	 
		<!--jdbc驱动-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
 
		<!--使用 log4j2 记录日志-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-log4j2</artifactId>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

二、yml文件配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIA2UGZpHzAZUqXTrxVp1Dh6WDl/EGRQwyu/oDoWs0E7TTKWIKfpf4mVf5lXWi0ijCt00TIX15h979aq1sX2dwkCAwEAAQ==
      # 数据库
      url: XXXXXX
      username: root
      password: XXXX
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 连接池-初始化大小
      initial-size: 10
      # 连接池-最大连接数
      max-active: 100
      # 最大等待时间
      max-wait: 60000
      # 连接池-最小空闲数
      min-idle: 10
      # 检测空闲连接
      test-while-idle: true
      # 最小空闲时间
      min-evictable-idle-time-millis: 300000 
      connection-properties: config.decrypt=true;config.decrypt.key=${spring.datasource.druid.publicKey} 
      # 可以把这个数值配置大一些,比如说100      maxOpenPreparedStatements: 20      # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作
      keepAlive: true      # Spring 监控,利用aop 对指定接口的执行时间,jdbc数进行记录
      aop-patterns: "com.ld.druid.dao.*"      ########### 启用内置过滤器(第一个 stat必须,否则监控不到SQL)##########      
      filter:
# 开启druiddatasource的状态监控
       wall: 
        config:
            alter-table-allow: false
            drop-table-allow: false
       stat:
        db-type: mysql
       # 开启慢sql监控,超过2s 就认为是慢sql,记录到日志中
        log-slow-sql: true
        slow-sql-millis: 2000        # 日志监控,使用slf4j 进行日志输出
       slf4j:
         statement-log-error-enabled: true
         statement-create-after-log-enabled: false
         statement-close-after-log-enabled: false
         result-set-open-after-log-enabled: false
         result-set-close-after-log-enabled: false
      web-stat-filter:
        enabled: true                   # 启动 StatFilter
        url-pattern: /*                 # 过滤所有url
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" # 排除一些不必要的url
        session-stat-enable: true       # 开启session统计功能
        session-stat-max-count: 1000    # session的最大个数,默认100
        ########## 配置StatViewServlet(监控页面),用于展示Druid的统计信息 ##########
      stat-view-servlet:
        enabled: true                   # 启用StatViewServlet
        #url-pattern: /         # 访问内置监控页面的路径,内置监控页面的首页 是/druid/index.html
        reset-enable: false              # 不允许清空统计数据,重新计算
        login-username: root            # 配置监控页面访问密码
        login-password: 123
        allow: 127.0.0.1           # 允许访问的地址,如果allow没有配置或者为空,则允许所有访问
        deny: 

三、访问地址

  系统启动,监控访问地址为http://localhost:8080/druid/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值