天天看点

spring boot druid连接池的配置

pom.xml文件配置

com.alibaba

druid

1.0.18

DruidConfig 文件摄入配置

import java.sql.SQLException;

import javax.servlet.Filter;

import javax.servlet.Servlet;

import javax.sql.DataSource;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Value;

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 org.springframework.context.annotation.Primary;

import com.alibaba.druid.pool.DruidDataSource;

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

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

@Configuration

public class DruidConfig {

private Logger logger = LoggerFactory.getLogger(getClass());

@Value("${spring.datasource.url}")

private String dbUrl;

@Value("${spring.datasource.username}")

private String username;

@Value("${spring.datasource.password}")

private String password;

@Value("${spring.datasource.driver-class-name}")

private String driverClassName;

@Value("${spring.datasource.initialSize}")

private int initialSize;

@Value("${spring.datasource.minIdle}")

private int minIdle;

@Value("${spring.datasource.maxActive}")

private int maxActive;

@Value("${spring.datasource.maxWait}")

private int maxWait;

@Value("${spring.datasource.timeBetweenEvictionRunsMillis}")

private int timeBetweenEvictionRunsMillis;

@Value("${spring.datasource.minEvictableIdleTimeMillis}")

private int minEvictableIdleTimeMillis;

@Value("${spring.datasource.validationQuery}")

private String validationQuery;

@Value("${spring.datasource.testWhileIdle}")

private boolean testWhileIdle;

@Value("${spring.datasource.testOnBorrow}")

private boolean testOnBorrow;

@Value("${spring.datasource.testOnReturn}")

private boolean testOnReturn;

@Value("${spring.datasource.poolPreparedStatements}")

private boolean poolPreparedStatements;

@Value("${spring.datasource.filters}")

private String filters;

@Value("${spring.datasource.loginUsername}")

private String loginUsername;

@Value("${spring.datasource.loginPassword}")

private String loginPassword;

@SuppressWarnings({“rawtypes”, “unchecked”})

@Bean

public ServletRegistrationBean druidServlet() {

ServletRegistrationBean reg = new ServletRegistrationBean();

reg.setServlet(new StatViewServlet());

reg.addUrlMappings("/druid/");

reg.addInitParameter(“loginUsername”,loginUsername==""?“druid”:loginUsername);

reg.addInitParameter(“loginPassword”, loginPassword);

return reg;

}

@SuppressWarnings({“rawtypes”, “unchecked”})

@Bean

public FilterRegistrationBean filterRegistrationBean() {

FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();

filterRegistrationBean.setFilter(new WebStatFilter());

filterRegistrationBean.addUrlPatterns("/");

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

filterRegistrationBean.addInitParameter(“profileEnable”, “true”);

filterRegistrationBean.addInitParameter(“principalCookieName”, “USER_COOKIE”);

filterRegistrationBean.addInitParameter(“principalSessionName”, “USER_SESSION”);

return filterRegistrationBean;

}

@Bean

@Primary

public DataSource druidDataSource(){

DruidDataSource datasource = new DruidDataSource();

datasource.setUrl(this.dbUrl);

datasource.setUsername(username);

datasource.setPassword(password);

datasource.setDriverClassName(driverClassName);

datasource.setInitialSize(initialSize);

datasource.setMinIdle(minIdle);

datasource.setMaxActive(maxActive);

datasource.setMaxWait(maxWait);

datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);

datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);

datasource.setValidationQuery(validationQuery);

datasource.setTestWhileIdle(testWhileIdle);

datasource.setTestOnBorrow(testOnBorrow);

datasource.setTestOnReturn(testOnReturn);

datasource.setPoolPreparedStatements(poolPreparedStatements);

try {

datasource.setFilters(filters);

} catch (SQLException e) {

logger.error(“druid configuration initialization filter”, e);

}

return datasource;

}

application.yml 文件配置

datasource:

name : ems

url : jdbc:mysql://localhost:3306/sit?useUnicode=true&characterEncoding=utf-8&useSSL=false

username : preview

password : preview

type : com.alibaba.druid.pool.DruidDataSource

driver-class-name : com.mysql.jdbc.Driver

filters : stat

maxActive : 20

initialSize : 1

maxWait : 60000

minIdle : 1

timeBetweenEvictionRunsMillis : 60000

minEvictableIdleTimeMillis : 300000

validationQuery : select ‘x’

testWhileIdle : true

testOnBorrow : false

testOnReturn : false

poolPreparedStatements : true

maxOpenPreparedStatements : 20

loginPassword : ‘123456’

loginUsername : ‘’

查看druid的监控信息

http://地址:端口/druid/weburi.html

配置的账号密码是:loginUsername,loginPassword