Druid连接池是alibaba公司开源的一款数据库连接池,其拥有监控功能和丰富的扩展性能
git地址 : https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
git上面有详细的文档
SpringBoot集成Druid并且实现对项目的监控
代码目录结构如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Ynj3pmf-1630919212049)(C:\Users\EDZ\AppData\Local\Temp\1630917986943.png)]
pom.xml
<?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 http://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>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>springboot.druid.demo</groupId>
<artifactId>springboot-druid-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--监控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.yml
spring: #表示该配置直接为Spring容器负责处理
datasource:
type: com.alibaba.druid.pool.DruidDataSource #配置当前要使用的数据源的操作类型那个
driver-class-name: org.gjt.mm.mysql.Driver #配置MySQL的驱动程序类
url: jdbc:mysql://39.102.126.53:3306/niceschool?useUnicode=true&characterEncoding=utf8
username: niceschool
password: admin
filters: stat,wall,log4j #druid监控配置
dbcp2:
min-idle: 5 #数据库连接池的最小维持连接数
initial-size: 5 #初始化提供的连接数
max-total: 5 #最大的连接数
max-wait-millis: 200 #等待连接获取的最大超时时间
server:
port: 8080
DruidConfig
package com.springboot.demo.config;
import com.alibaba.druid.filter.FilterEventAdapter;
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;
/**
* @ClassName DruidConfig
* @Description Druid基本配置
* @Author liuf
* @Date 2021/9/6 16:22
* @Version 1.0
**/
@Configuration
public class DruidConfig {
@Bean
public ServletRegistrationBean druidServlet(){// 主要实现web监控的配置处理
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
//白名单
servletRegistrationBean.addInitParameter("allow", "172.19.34.249,255.255.252.0");
//黑名单
servletRegistrationBean.addInitParameter("deny", "129.168.1.12");
//用户名
servletRegistrationBean.addInitParameter("loginUsername", "root");
//密码
servletRegistrationBean.addInitParameter("loginPassword", "root");
//是否可以重置数据源
servletRegistrationBean.addInitParameter("resetEnable", "false");
return servletRegistrationBean;
}
@Bean
public FilterRegistrationBean filterRegistrationBean(){//监控
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
//所有请求进行监控处理
filterRegistrationBean.addUrlPatterns("/*");
//排除
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.css,/druid/*");
return filterRegistrationBean;
}
@Bean
@ConfigurationProperties(prefix="spring.dataspurce")
public DataSource druidDatasource(){
return new DruidDataSource();
}
}
SpringbootDruidDemo
package com.springboot.demo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @ClassName SpringbootDruidDemo
* @Description TODO
* @Author liuf
* @Date 2021/9/6 16:15
* @Version 1.0
**/
@SpringBootApplication
@Slf4j
public class SpringbootDruidDemo {
public static void main(String[] args){
SpringApplication.run(SpringbootDruidDemo.class,args);
}
}
访问地址
http://localhost:8080/druid/login.html
问题总结:火狐浏览器刚开始打不开网页会报错 使用curl 命令可以打开 更换浏览器即可
curl http://localhost:8080/druid/login.html
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nPFrYnNN-1630919212051)(C:\Users\EDZ\AppData\Local\Temp\1630918531783.png)]
可以对项目进行监控
http://localhost:8080/druid/login.html
问题总结:火狐浏览器刚开始打不开网页会报错 使用curl 命令可以打开 更换浏览器即可
curl http://localhost:8080/druid/login.html
[外链图片转存中…(img-nPFrYnNN-1630919212051)]
可以对项目进行监控
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u5aNwMcQ-1630919212052)(C:\Users\EDZ\AppData\Local\Temp\1630919125113.png)]