返回

Java程序员必备 - Spring Boot整合Druid,开启数据库监控

后端

SpringBoot整合Druid,开启数据库监控

简介

在Java开发中,SpringBoot和Druid可谓是声名显赫。SpringBoot以其简化开发流程、提升开发效率的特点,深受广大Java开发者的喜爱;而Druid则以其卓越的性能和强大的监控功能,成为数据库连接池的不二之选。

SpringBoot整合Druid

SpringBoot整合Druid的方式有两种:

  1. 自定义方式 :这种方式需要手动配置Druid的数据源和监控功能。
  2. 引入starter方式 :这种方式更加简单,只需引入Druid的starter依赖即可。

自定义方式

  1. 在pom.xml中添加Druid依赖:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.9</version>
</dependency>
  1. 在application.yml中配置Druid数据源:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource
  1. 配置Druid监控功能:
druid:
  username: druid
  password: 123456
  stat-view-servlet:
    enabled: true
    url-pattern: /druid/*
  web-stat-filter:
    enabled: true
    url-pattern: /*
    exclusions: /druid/*

引入starter方式

  1. 在pom.xml中添加Druid starter依赖:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.9</version>
</dependency>
  1. 在application.yml中配置Druid数据源:
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    username: root
    password: 123456

无需配置监控功能,Druid starter会自动启用监控功能。

使用Druid监控数据库

Druid提供了丰富的监控指标,你可以通过Druid的监控界面查看这些指标。

访问Druid监控界面

在浏览器中输入http://localhost:8080/druid,即可访问Druid的监控界面。

查看监控指标

Druid监控界面提供了丰富的监控指标,包括:

  • 连接池状态:显示连接池的当前状态,包括连接数、活跃连接数、空闲连接数等。
  • SQL执行情况:显示SQL语句的执行情况,包括执行时间、执行次数、慢查询等。
  • 慢查询分析:显示慢查询的详细信息,包括SQL语句、执行时间、执行计划等。

代码示例

以下是一个使用Druid监控数据库的代码示例:

import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
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;

@Configuration
public class DruidConfig {

    @Bean
    public DruidDataSource druidDataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8");
        druidDataSource.setUsername("root");
        druidDataSource.setPassword("123456");
        druidDataSource.setFilters("stat");
        return druidDataSource;
    }

    @Bean
    public FilterRegistrationBean<WebStatFilter> webStatFilter() {
        FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<>();
        filterRegistrationBean.setFilter(new WebStatFilter());
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.addInitParameter("exclusions", "/druid/*");
        return filterRegistrationBean;
    }

    @Bean
    public ServletRegistrationBean<StatViewServlet> statViewServlet() {
        ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<>();
        servletRegistrationBean.setServlet(new StatViewServlet());
        servletRegistrationBean.addUrlMappings("/druid/*");
        servletRegistrationBean.addInitParameter("loginUsername", "druid");
        servletRegistrationBean.addInitParameter("loginPassword", "123456");
        return servletRegistrationBean;
    }
}

结论

通过本篇博客,你已经学会了如何将SpringBoot与Druid整合起来,实现数据库监控功能。希望你能熟练掌握Druid的使用,并将其应用到你的项目中,以提升项目性能,确保数据库稳定运行。

常见问题解答

  1. 如何配置Druid的用户名和密码?
    druid:
      username: druid
      password: 123456
    
  2. 如何配置StatViewServlet访问路径?
    druid:
      stat-view-servlet:
        url-pattern: /druid/*
    
  3. 如何配置WebStatFilter监控过滤规则?
    druid:
      web-stat-filter:
        url-pattern: /*
        exclusions: /druid/*
    
  4. 如何访问Druid监控界面?
    在浏览器中输入http://localhost:8080/druid
  5. Druid监控界面提供了哪些监控指标?
    连接池状态、SQL执行情况、慢查询分析等。