Druid(五)

本文介绍了如何在SpringBoot项目中集成Druid数据库连接池,并实现监控功能。通过访问特定URL,可以对项目进行实时监控。在火狐浏览器遇到问题时,可以尝试使用curl命令或者更换其他浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值