您现在的位置是:首页 > 编程 > 

【Spring Boot】009

2025-07-28 01:57:11
【Spring Boot】009 最新更新:2020年9月22日08:21:25 结合这篇文章看:【Spring Boot】008-Spring Boot整合JDBC 一、Druid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池;Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 CP0、DBCP 等 DB 池的优点,同时加入了日志

【Spring Boot】009

最新更新:2020年9月22日08:21:25 结合这篇文章看:【Spring Boot】008-Spring Boot整合JDBC

一、Druid简介

Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池;

Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 CP0、DBCP 等 DB 池的优点,同时加入了日志监控;

Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池;

Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验;

Spring Boot 2.0 以上默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源,我们来重点介绍 Spring Boot 如何集成 Druid 数据源,如何实现数据库监控;

Github地址:

/

com.alibaba.druid.pool.DruidDataSource 基本配置参数如下:
二、配置数据源

1、简单配置

第一步:导入Maven坐标
代码语言:javascript代码运行次数:0运行复制
<!-- .alibaba/druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.2</version>
</dependency>
第二步:切换数据源
代码语言:javascript代码运行次数:0运行复制
spring:
  datasource:
    username: root
    password: 12456
    url: jdbc:mysql://localhost:06/zibo?serverTimezone=UTC
    driver-class-name: jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource # 自定义数据源
第三步:添加其他配置
代码语言:javascript代码运行次数:0运行复制
spring:
  datasource:
    username: root
    password: zibo1529417242
    url: jdbc:mysql://localhost:06/zibo?serverTimezone=UTC
    driver-class-name: jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource # 自定义数据源


    #Spring Boot 默认是不注入这些属性值的,需要自己绑定
    #druid 数据源专有配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 00000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true

    #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
    #如果允许时报错  java.lang.ClassotFoundException: org.apache.log4j.Priority
    #则导入 log4j 依赖即可,Maven 地址:
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.=true;druid.stat.slowSqlMillis=500
第四步:添加log4j坐标
代码语言:javascript代码运行次数:0运行复制
        <!--log4j-->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
第五步:运行程序进行测试,结果可以正常使用

2、自定义配置(关键)

第一步:创建DruidConfig类
代码语言:javascript代码运行次数:0运行复制
package com.;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import org.springframework.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.annotation.Bean;
import org.annotation.Configuration;

import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource(){
        return new DruidDataSource();
    }

    //后台监控功能:固定写法
    //说明:因为SpringBoot内置了Servlet,没有web.xml,替代方法就是ServletRegistrationBean
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
        //后台需要有人登录:固定写法
        Map<String, String> initParameters = new HashMap<>();
        //添加配置,key是固定的
        initParameters.put("loginUsername","admin");
        initParameters.put("loginPassword","666666");
        //允许谁能访问
        initParameters.put("allow","");//如果此value为空,就表示谁都可以访问
        //禁止谁访问
//        initParameters.put("账号","密码");
        bean.setInitParameters(initParameters);
        return bean;
    }
}
第二步:运行,访问http://localhost:8080/druid/login.html,结果
第三步:输入账号密码,登录
第四步:打开SQL监控选项卡
第五步:走一条SQL
第六步:回看SQL监控

有点意思了吧!

、配置过滤功能

代码语言:javascript代码运行次数:0运行复制
package com.;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.annotation.Bean;
import org.annotation.Configuration;

import javax.servlet.Filter;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource(){
        return new DruidDataSource();
    }

    //后台监控功能:固定写法
    //说明:因为SpringBoot内置了Servlet,没有web.xml,替代方法就是ServletRegistrationBean
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
        //后台需要有人登录:固定写法
        Map<String, String> initParameters = new HashMap<>();
        //添加配置,key是固定的
        initParameters.put("loginUsername","admin");
        initParameters.put("loginPassword","666666");
        //允许谁能访问
        initParameters.put("allow","");//如果此value为空,就表示谁都可以访问
        //禁止谁访问
//        initParameters.put("账号","密码");
        bean.setInitParameters(initParameters);
        return bean;
    }

    //配置Filter
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();

        //设置过滤器
        bean.setFilter(new WebStatFilter());
        //可以过滤哪些请求
        Map<String,String> initParameters = new HashMap<>();
        //这些东西不进行统计
        initParameters.put("exclusi",".js,.css,/druid/*");

        bean.setInitParameters(initParameters);
        return bean;
    }
}
三、源代码

链接: 提取码:zibo

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除springbootdruid监控配置

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1198902.html

相关标签:无
上传时间: 2025-07-23 13:14:57

上一篇:【Spring Boot】010

下一篇:【Spring Boot】008

留言与评论(共有 19 条评论)
本站网友 什么是内盘外盘
19分钟前 发表
true connectionProperties
本站网友 我的性史
1分钟前 发表
SELECT 1 FROM DUAL testWhileIdle
本站网友 临潼二手房
23分钟前 发表
druid.=true;druid.stat.slowSqlMillis=500第四步:添加log4j坐标代码语言:javascript代码运行次数:0运行复制 <!--log4j--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>第五步:运行程序进行测试
本站网友 天津宠物医院
30分钟前 发表
20 useGlobalDataSourceStat
本站网友 儿童摄影店
6分钟前 发表
00000 validationQuery
本站网友 省立医院预约
19分钟前 发表
".js
本站网友 aaa培训
18分钟前 发表
mysql
本站网友 长沙优山美地
9分钟前 发表
true connectionProperties
本站网友 金融期货
5分钟前 发表
结果可以正常使用2
本站网友 东四命西四命
6分钟前 发表
监控统计
本站网友 河北阶梯电价
4分钟前 发表
false poolPreparedStatements
本站网友 华夏保险官网
7分钟前 发表
zibo1529417242 url
本站网友 黄石房屋出租
13分钟前 发表
root password
本站网友 qugan
0秒前 发表
stat
本站网友 上海宝冶建设有限公司
12分钟前 发表
就表示谁都可以访问 //禁止谁访问 // initParameters.put("账号"
本站网友 河南肿瘤医院
29分钟前 发表
登录第四步:打开SQL监控选项卡第五步:走一条SQL第六步:回看SQL监控有点意思了吧!
本站网友 汽车东站租房
27分钟前 发表
配置数据源1
本站网友 东戴河农家院
19分钟前 发表
username