springboot+druid连接池及监控配置

Posted ruanjianlaowang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+druid连接池及监控配置相关的知识,希望对你有一定的参考价值。

1. 问题描述

阿里巴巴的数据库连接池Druid在效率与稳定性都很高,被很多开发团队使用,并且自带的Druid监控也很好用,本章简单介绍下springboot+druid配置连接池及监控。

2. 解决方案

2.1 pom.xml

springboot 已经有druid的starter,但是好像有点问题,不知道为什么没拿到jar包,有可能是网络问题,还是使用了原生的druid gav。

      <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.26</version>
        </dependency>
        
      <!--starter有点问题,没用-->
       <!-- <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>-->

2.2 连接池配置

连接池配置没啥说的,我们当时为了省事,直接将以前项目中的xml导过来了(在application启动上加个标签就好了)

    <!-- datasource configuration -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="url" value="$jdbc.url"/>
        <property name="username" value="$jdbc.username"/>
        <property name="password" value="$jdbc.password"/>

        <property name="maxActive" value="$spring.datasource.maxActive" />
        <property name="initialSize" value="$spring.datasource.initialSize" />
        <property name="maxWait" value="$spring.datasource.maxWait" />
        <property name="minIdle" value="$spring.datasource.minIdle" />
        <property name="timeBetweenEvictionRunsMillis" value="$spring.datasource.timeBetweenEvictionRunsMillis" />
        <property name="minEvictableIdleTimeMillis" value="$spring.datasource.minEvictableIdleTimeMillis" />
        <property name="testWhileIdle" value="$spring.datasource.testWhileIdle" />
        <property name="testOnBorrow" value="$spring.datasource.testOnBorrow" />
        <property name="testOnReturn" value="$spring.datasource.testOnReturn" />
        <property name="poolPreparedStatements" value="$spring.datasource.poolPreparedStatements" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="$spring.datasource.maxPoolPreparedStatementPerConnectionSize" />
        <property name="filters" value="$spring.datasource.filters"  />
        <property name="connectionProperties" value="$spring.datasource.connectionProperties"  />
    </bean>

2.3 监控配置

默认继承了一个filter,一个Servlet,使用了两个标签。

2.3.1 filter类
@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*",
        initParams = 
                @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")
        
)
public class DruidStatFilter extends WebStatFilter 

2.3.2 servlet类
@WebServlet(urlPatterns = "/druid/*",
        initParams = 
                @WebInitParam(name = "loginUsername", value = "laowang"),// 用户名
                @WebInitParam(name = "loginPassword", value = "lw123"),// 密码
                @WebInitParam(name = "resetEnable", value = "false")// 禁用html页面上的“Reset All”功能
        
)
public class DruidStatViewServlet extends StatViewServlet 
    private static final long serialVersionUID = 1L;

2.3.3 启动类上增加标签
@ServletComponentScan
@SpringBootApplication
public class SptestApplication 

    public static void main(String[] args) 
        SpringApplication.run(SptestApplication.class, args);
    

ok,配置完了。

2.4 访问界面

2.4.1 访问首页

地址:http://192.168.0.10:9107/druid/login.html

技术图片

2.4.2 SQL监控

可以监控具体执行的sql,时间行数等,用于分析慢SQL,优化响应时间。

技术图片

2.4.3 URI监控

可以看到接口的执行时间及访问次数,为系统优化提供参考。

技术图片


以上是关于springboot+druid连接池及监控配置的主要内容,如果未能解决你的问题,请参考以下文章

springboot中使用druid和监控配置

SpringBoot学习--07配置Druid数据库连接池

Springboot项目配置druid数据库连接池,并监控统计功能

SpringBoot 开启Druid监控统计功能

SpringBoot系列之集成Druid配置数据源监控

SpringBoot:集成DataSource 与 Druid监控配置