欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring boot druid连接池的配置

程序员文章站 2022-07-07 18:26:41
...
pom.xml文件配置
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.18</version>
        </dependency>


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;

/**
* ClassName:DruidConfig <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON. <br/>
* Date:     2018年9月28日 上午10:27:52 <br/>
* @author   tanli45
* @version 
* @since    JDK 1.8
* @see
*/
/**
* ClassName: DruidConfig <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON(可选). <br/>
* date: 2018年9月28日 上午10:27:52 <br/>
*
* @author tanli45
* @version
* @since JDK 1.8
*/
@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<Servlet> 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<Filter> 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







  • spring boot druid连接池的配置
            
    
    博客分类: spring boot
  • 大小: 55.2 KB