SprongBoot项目整合Druid实现数据监控功能

web程序普遍的都会涉及到数据库的操作,为了提高系统的性能,在数据库操作上,几乎千篇一律的使用了数据库连接池技术,数据库连接池有很多选择,c3p、dhcp、proxool等,druid作为一名后起之秀,凭借其出色的性能,也逐渐印入了大家的眼帘。 可以说,druid是目前为止最好的数据库连接池。
在此以SpringBoot项目为例来集成Druid。

具体步骤如下:
1 创建一个SpringBoot项目 (省略,具体过程不说明)
2 引入必要依赖 (在引入Druid依赖的时候,必须引入数据库依赖,在此用的是mysql数据库)

 
        
            com.alibaba
            druid
            1.1.12
        

        
            mysql
            mysql-connector-java
            runtime
        

3 配置数据库连接池

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8
    username: root
    password: root
    #初始化大小 最大和最小
    initialSize: 5
    minIdel: 5
    maxActive: 20
    #配置获取连接等待超时时间(单位毫秒)
    maxWait: 60000
    #配置多久检测一次空闲链接
    minEvicatableIdleTimeMillis: 30000
    validationQuery: select 1 from DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    #打开PSChace 指定每个连上PSChace 的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    #配置监控拦截的filter 去掉后监控页面sql将无法记录 wall用于防火墙
    filters: stat,wall,log4j
    #通过connectionProperties 属性来打开mergerSql功能,慢sql记录
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

4 开启监控功能
开启Druid连接池的监控功能,可以在应用运行期间,通过监控提供的多维度数据来分析使用数据库的运行情况,从而可以调整程序设计,以达到优化数据库访问性能的目的。接下来定义一个监控服务器和一个过滤器,监控服务器设定了访问监控后台的连接地址为“/mtx/druid/*”,设定了访问数据库的白名单和黑名单,即通过访问者IP地址来控制访问来源,增加了数据库的安全设置,还设置了一个用来登录监控后台的账户和密码。代码如下:


/**
 * @Author: txma
 * @Date: 2019/5/15 20:28
 * @Version: 1.0
 */
@SuppressWarnings("all")
@Configuration
public class DruidConfig {

    /**
     * 返回监控注册的Servlet对象
     * @return
     */
    @Bean
    public ServletRegistrationBean statViewServletDemo(){
         ServletRegistrationBean srb = new ServletRegistrationBean(new StatViewServlet(),"/mtx/druid/*");
        //添加白名单
        srb.addInitParameter("allow","127.0.0.1");
        //添加黑名单
        srb.addInitParameter("deny"," 192.168.43.130");
        // 添加控制台管理用户
        srb.addInitParameter("loginUsername", "kyrie");
        srb.addInitParameter("loginPassword", "123456");
        // 是否能够重置数据
        srb.addInitParameter("resetEnable", "false");
        return  srb;
    }

    /**
     * 配置服务过滤器
     * @return
     */
    @Bean
    public FilterRegistrationBean statFilterDemo(){
        FilterRegistrationBean frb = new FilterRegistrationBean(new WebStatFilter());
        // 添加过滤规则
        frb.addUrlPatterns("/*");
        // 忽略过滤格式
        return  frb;
    }

}

5 配置启动类


@SpringBootApplication
@ComponentScan("com.springboot.druid.config")

6 运行项目,访问http://localhost:8080/mtx/druid/login.html,输入登录名称和密码 ,如下:
SprongBoot项目整合Druid实现数据监控功能_第1张图片
SprongBoot项目整合Druid实现数据监控功能_第2张图片

最后,全部代码已上传至gitHub,欢迎打扰

你可能感兴趣的:(个人笔记,数据库)