返回
Java程序员必备 - Spring Boot整合Druid,开启数据库监控
后端
2022-11-27 16:58:28
SpringBoot整合Druid,开启数据库监控
简介
在Java开发中,SpringBoot和Druid可谓是声名显赫。SpringBoot以其简化开发流程、提升开发效率的特点,深受广大Java开发者的喜爱;而Druid则以其卓越的性能和强大的监控功能,成为数据库连接池的不二之选。
SpringBoot整合Druid
SpringBoot整合Druid的方式有两种:
- 自定义方式 :这种方式需要手动配置Druid的数据源和监控功能。
- 引入starter方式 :这种方式更加简单,只需引入Druid的starter依赖即可。
自定义方式
- 在pom.xml中添加Druid依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
- 在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
- 配置Druid监控功能:
druid:
username: druid
password: 123456
stat-view-servlet:
enabled: true
url-pattern: /druid/*
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: /druid/*
引入starter方式
- 在pom.xml中添加Druid starter依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.9</version>
</dependency>
- 在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的使用,并将其应用到你的项目中,以提升项目性能,确保数据库稳定运行。
常见问题解答
- 如何配置Druid的用户名和密码?
druid: username: druid password: 123456
- 如何配置StatViewServlet访问路径?
druid: stat-view-servlet: url-pattern: /druid/*
- 如何配置WebStatFilter监控过滤规则?
druid: web-stat-filter: url-pattern: /* exclusions: /druid/*
- 如何访问Druid监控界面?
在浏览器中输入http://localhost:8080/druid
。 - Druid监控界面提供了哪些监控指标?
连接池状态、SQL执行情况、慢查询分析等。