`

spring boot druid连接池的配置

阅读更多
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







  • 大小: 55.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics