博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot 添加druid
阅读量:4986 次
发布时间:2019-06-12

本文共 4293 字,大约阅读时间需要 14 分钟。

第一步:添加依赖

<!-- druid  -->

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>1.0.18</version>

</dependency>

 

第二步:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.name=druid

 

spring.datasource.druid.initialSize=5

spring.datasource.druid.minIdle=5

spring.datasource.druid.maxActive=20

spring.datasource.druid.maxWait=60000

spring.datasource.druid.timeBetweenEvictionRunsMillis=60000

spring.datasource.druid.minEvictableIdleTimeMillis=300000

spring.datasource.druid.validationQuery=SELECT 1 FROM t_user

spring.datasource.druid.testWhileIdle=true

spring.datasource.druid.testOnBorrow=true

spring.datasource.druid.testOnReturn=false

spring.datasource.druid.poolPreparedStatements=true

spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20

spring.datasource.druid.filters=stat,wall,log4j

spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

 

第三步 增加读取配置文件和创建servlet Filter

package com.lanou.druid;

 

import javax.sql.DataSource;

 

import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.jdbc.DatabaseDriver;

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 com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

@Configuration

@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)

@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true)

public class DruidDataSourceConfiguration {

 

 

    @SuppressWarnings("unchecked")

    protected <T> T createDataSource(DataSourceProperties properties,

                                     Class<? extends DataSource> type) {

        return (T) properties.initializeDataSourceBuilder().type(type).build();

    }

 

    /**

     * @see org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.Tomcat 仿写的你可以去了解

     * @param properties 读入的配置

     * @return DruidDataSource

     */

    @Bean

    @ConfigurationProperties("spring.datasource.druid")

    public com.alibaba.druid.pool.DruidDataSource dataSource(DataSourceProperties properties) {

 

        com.alibaba.druid.pool.DruidDataSource dataSource = createDataSource(

                properties, com.alibaba.druid.pool.DruidDataSource.class);

 

        DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(properties.determineUrl());

 

        String validationQuery = databaseDriver.getValidationQuery();

        if (validationQuery != null) {

            dataSource.setTestOnBorrow(true);

            dataSource.setValidationQuery(validationQuery);

        }

 

        return dataSource;

    }

 

    /**

     * 注册一个StatViewServlet

     */

    @Bean

    public ServletRegistrationBean druidStatViewServlet(){

        //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.

        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");

 

        //添加初始化参数:initParams

        //白名单:

        servletRegistrationBean.addInitParameter("allow","127.0.0.1");

        //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.

        servletRegistrationBean.addInitParameter("deny","192.168.1.73");

        //登录查看信息的账号密码.

        servletRegistrationBean.addInitParameter("loginUsername","root");

        servletRegistrationBean.addInitParameter("loginPassword","password");

        //是否能够重置数据.

        servletRegistrationBean.addInitParameter("resetEnable","false");// 禁用HTML页面上的“Reset All”功能

        return servletRegistrationBean;

    }

 

    /**

     * 注册一个:filterRegistrationBean

     */

    @Bean

    public FilterRegistrationBean druidStatFilter(){

 

        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

        filterRegistrationBean.setName("druidWebStatFilter");

        //添加过滤规则.

        filterRegistrationBean.addUrlPatterns("/*");

        //添加忽略的格式信息.

        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");

        return filterRegistrationBean;

    }

}

 

第四步:访问地址 http://localhost:8080/druid

转载于:https://www.cnblogs.com/xusongfeng/p/8378139.html

你可能感兴趣的文章
Docker架构
查看>>
C#设计模式(3)——工厂方法模式
查看>>
过目不忘JS正则表达式
查看>>
Colidity-- StoneWall
查看>>
Leetcode 904. Fruit Into Baskets
查看>>
怎样连接REDIS服务端
查看>>
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
解决"disabled". Expected Boolean, got Number with value 0
查看>>
OC--init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
查看>>
Exponentiation
查看>>
本地jar上传到本地仓库
查看>>
四则运算C++带Qt界面版本,吾王镇楼。。。。。
查看>>
安卓7.0手机拍照闪退问题解决
查看>>
ME525+ Defy+ 刷机指南[zz]
查看>>
支持触屏的jQuery轮播图插件
查看>>
差一点搞混了Transactional注解
查看>>
javascript基本函数
查看>>
前端公共库cdn服务推荐//提高加载速度/节省流量
查看>>
asp.net GridView多行表头的实现,合并表头
查看>>