Spring Boot 实战 :集成 Druid

什么是 Druid ??

    Druid 单词来源于西方古罗马的神话人物,中文常常翻译成德鲁伊,Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能,Druid 是一个为OLAP查询需求而设计的开源大数据系统,Druid 提供低延时的数据插入,实时的数据查询
Druid 使用Java开发,基于Jetty提供http rest服务,也提供了 Java/Python 等语言的工具包,Druid 是一个集群系统,使用zookeeper做节点管理和事件监控,这里只做简单介绍,详细了解请看:http://druid.io/docs/0.8.1/design/index.html

C3p0,Dbcp 与 Druid 三大连接池的区别 ??

    DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP

    C3p0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

    阿里出品,淘宝和支付宝专用数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个 SQL Parser。支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。Druid针对Oracle和MySql做了特别优化

    详细请看:https://blog.csdn.net/qq_34359363/article/details/72763491   太长了。。自己看吧

怎么配置 Druid ??

Pom.xml 引入包


    com.alibaba
    druid
    1.1.4

然后配置 application.properties

也可以选择 参考 :https://help.aliyun.com/document_detail/95125.html?spm=a2c4g.11186623.6.612.7cdc5d5eNz6Wwx

### Druid 连接池 数据源类别
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
###初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
###配置获取连接等待超时的时间,单位是毫秒
spring.datasource.maxWait=60000
###配置多长时间进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
###配置连接池中最小的生存时间,单位是毫秒
spring.datasource.minEvictableidleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileidle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
###打开PSCache,并且指定上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
###配置监控统计拦截的filters ,去掉后监控界面的SQL 无法统计'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
###通过connectProperties属性打开mergesql功能,慢sql记录
spring.datasource.tomcat.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

然后配置 DruidConfiguration

package com.cs.druid.config;

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;

/**
 * @ClassName DruidConfiguration
 * @Param Druid  连接池配置
 * @Author linluochen
 * @Date 2019/4/22 16:39
 * @Version 1.0
 **/
@Configuration // 声明这个类是个 xml 配置文件
public class DruidConfiguration {

    @Bean //同等于 xml 文件中的 Bean 配置,Spring Boot 会把加上该注解的方法的返回值装进 Spring Ioc 的容器中
    public ServletRegistrationBean druidStatViewServlet() {
        //ServletRegistrationBean 提供类的进行注册
        ServletRegistrationBean servlet = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        //添加初始化参数
        //白名单:
        servlet.addInitParameter("allow","127.0.0.1");
        //IP黑名单(共存时,deny优先于allow)
        //如果满足deny,就会提示 Sorry,you are not permitted to view this page.servlet.addInitParameter("deny","192.168.1.73")
        //登录查看信息的账号密码
        servlet.addInitParameter("loginUsername","admin");
        servlet.addInitParameter("loginPassword","123456");
        //是否能重置数据
        servlet.addInitParameter("resetEnable","false");
        return servlet;
    }

    @Bean
    public FilterRegistrationBean druidStatFilter(){
        FilterRegistrationBean filter = new FilterRegistrationBean(new WebStatFilter());
        //添加过滤规则
        filter.addUrlPatterns("/*");
        //添加需要忽略的格式信息
        filter.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filter;
    }

}

最后运行测试是否配置成功,启动项目,然后输入地址:http://localhost:8080/druid 输入文件中配置的账号 admin 密码 123456

Spring Boot 实战 :集成 Druid_第1张图片

登陆成功后显示

Spring Boot 实战 :集成 Druid_第2张图片

 

 

你可能感兴趣的:(Spring,Boot,实战)