Druid

本文详细介绍了如何在SpringBoot项目中集成和配置阿里巴巴开源的Druid数据库连接池,包括添加依赖、配置数据源属性、创建Druid配置类以及监控页面和过滤器的设置,以实现有效的数据库管理和性能监控。
摘要由CSDN通过智能技术生成

Druid是阿里巴巴开源的一个强大的数据库连接池和监控组件。它提供了许多优秀的特性,包括性能强劲、监控功能丰富、扩展性好等,因此在实际项目中被广泛应用于数据库连接池的管理。

在Spring Boot中引入Druid可以通过以下步骤:

  1. 在pom.xml中添加Druid的依赖:
 

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version> </dependency>

  1. 在Spring Boot的配置文件(application.properties或application.yml)中配置Druid的数据源相关属性,例如:
 

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase spring.datasource.username=myusername spring.datasource.password=mypassword spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Druid配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 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 spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.filters=stat,wall,log4j spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

  1. 创建Druid的配置类,用于配置Druid的监控和管理功能:
 

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

import javax.sql.DataSource;

@Configuration
public class DruidConfig {
    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }
@Bean
public ServletRegistrationBean statViewServlet() {
    // 创建一个ServletRegistrationBean对象,用于注册StatViewServlet,并映射到"/druid/*"路径
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    // 配置Druid监控页面的登录用户名和密码
    servletRegistrationBean.addInitParameter("loginUsername", "admin");
    servletRegistrationBean.addInitParameter("loginPassword", "123456");
    return servletRegistrationBean;
}

@Bean
public FilterRegistrationBean webStatFilter() {
    // 创建一个FilterRegistrationBean对象,用于注册WebStatFilter,并配置URL的过滤规则
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
    // 添加URL的过滤规则,这里配置为拦截所有URL
    filterRegistrationBean.addUrlPatterns("/*");
    // 配置WebStatFilter的排除项,这些URL不会被拦截
    filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
    return filterRegistrationBean;
}
}

在这个配置类中,我们创建了一个名为 druidDataSource 的Bean,并且使用 @ConfigurationProperties 注解将配置文件中以 spring.datasource 开头的属性值与该Bean进行绑定。同时,我们还配置了Druid的监控页面和过滤器,使得可以通过浏览器访问Druid的监控页面,查看数据源的运行情况。

通过以上步骤,我们成功地引入了Druid并配置了数据源,同时也配置了Druid的监控和管理功能,使得我们可以更好地管理和监控数据库连接池的运行情况。

 

  1. aop-patterns: com.atguigu.admin.*:这个配置用于指定Druid的AOP切点,用于对Spring Bean进行监控。在这个例子中,com.atguigu.admin.* 表示对以 com.atguigu.admin 开头的包中的Spring Bean进行监控。

  2. filters: stat,wall,slf4j这个配置用于指定Druid的过滤器。在这个例子中,stat 表示开启监控统计功能,wall 表示开启防火墙功能,slf4j 表示使用SLF4J日志框架输出Druid的日志信息。



     

简单配置



 

  1. 在pom.xml中添加Druid的依赖:
 

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version> </dependency>

2.

stat-view-servlet:  # 监控页配置
  enabled: true  # 是否启用监控页
  login-username: admin  # 登录用户名
  login-password: admin  # 登录密码
  resetEnable: false  # 是否允许重置监控配置

web-stat-filter:  # Web监控
  enabled: true  # 是否启用Web监控
  urlPattern: /*  # URL匹配模式
  exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'  # 排除项,不进行Web监控的URL

filter:
  stat:  # SQL监控
    slow-sql-millis: 1000  # SQL执行时间阈值,超过该阈值将被记录
    logSlowSql: true  # 是否记录慢SQL
    enabled: true  # 是否启用SQL监控
  wall:  # 防火墙
    enabled: true  # 是否启用防火墙
    config:
      drop-table-allow: false  # 是否允许执行删除表的操作

解释:

  • stat-view-servlet部分配置了Druid的监控页面相关参数。enabled指定是否启用监控页面,login-usernamelogin-password分别为登录用户名和密码,resetEnable表示是否允许重置监控配置。
  • web-stat-filter部分配置了Web监控相关参数。enabled指定是否启用Web监控,urlPattern指定URL匹配模式,exclusions指定不进行Web监控的URL。
  • filter部分配置了Druid的过滤器,包括SQL监控和防火墙。stat部分配置了SQL监控的参数,包括slow-sql-millis指定SQL执行时间阈值,logSlowSql指定是否记录慢SQL,enabled指定是否启用SQL监控。wall部分配置了防火墙的参数,包括enabled指定是否启用防火墙,config中的drop-table-allow指定是否允许执行删除表的操作。


 

  1. stat-view-servlet

    • enabled: 指定是否启用Druid的监控页面,允许通过浏览器访问监控数据。
    • login-usernamelogin-password: 用于设置访问监控页面时的登录用户名和密码,用于保护监控页面不被未授权的访问所获取。
    • resetEnable: 指定是否允许重置监控配置,即允许动态修改监控配置。
  2. web-stat-filter

    • enabled: 指定是否启用Druid的Web监控功能,用于监控Web请求的性能和SQL执行情况。
    • urlPattern: 指定需要进行Web监控的URL匹配模式。
    • exclusions: 指定不进行Web监控的URL,可以排除一些静态资源或特定URL,避免监控数据被干扰。
  3. filter

    • stat:用于配置Druid的SQL监控功能。

      • slow-sql-millis: 指定SQL执行时间的阈值,超过该阈值的SQL将被记录下来。
      • logSlowSql: 指定是否记录慢SQL,用于分析和优化SQL性能。
      • enabled: 指定是否启用SQL监控功能。
    • wall:用于配置Druid的防火墙功能,用于防止SQL注入等安全问题。

      • enabled: 指定是否启用防火墙功能。
      • config中的drop-table-allow: 指定是否允许执行删除表的操作,可以增强数据库的安全性。

这些配置项可以帮助开发人员监控数据源的性能、SQL执行情况和Web请求情况,同时提供了一些安全防护措施,有助于优化系统性能和保障数据安全。






这样的配置方式更加直观和易于理解,可以方便地配置Druid的监控页面和过滤器功能。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tin9898

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值