1. 程式人生 > >spring boot 添加druid

spring boot 添加druid

page toc ive ppr family public 格式信息 gist 文件

第一步:添加依賴

<!-- 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

spring boot 添加druid