zoukankan      html  css  js  c++  java
  • SpringBoot1.5.10.RELEASE整合druid

    1、先在pom文件中导入druid的jar包

    1         <dependency>
    2             <groupId>com.alibaba</groupId>
    3             <artifactId>druid</artifactId>
    4             <version>1.1.10</version>
    5         </dependency>    

    2、新建DruidDataSourceConfig 配置类

      1 package com.wantom.config;
      2 
      3 import com.alibaba.druid.pool.DruidDataSource;
      4 import com.alibaba.druid.support.http.StatViewServlet;
      5 import com.alibaba.druid.support.http.WebStatFilter;
      6 import org.slf4j.Logger;
      7 import org.slf4j.LoggerFactory;
      8 import org.springframework.beans.factory.annotation.Value;
      9 import org.springframework.boot.context.properties.ConfigurationProperties;
     10 import org.springframework.boot.web.servlet.FilterRegistrationBean;
     11 import org.springframework.boot.web.servlet.ServletRegistrationBean;
     12 import org.springframework.context.annotation.Bean;
     13 import org.springframework.context.annotation.Configuration;
     14 
     15 import javax.sql.DataSource;
     16 import java.sql.SQLException;
     17 
     18 /**
     19 * @Name:DruidDataSourceConfig
     20 * @Description:数据源属性配置
     21 * @Version:V1.0.0
     22 * @Author:mYunYu
     23 * @Create Date:2018/11/6 11:30
     24 */
     25 @Configuration
     26 public class DruidDataSourceConfig {
     27 
     28     private Logger logger = LoggerFactory.getLogger(DruidDataSourceConfig.class);
     29 
     30     @Value("${spring.datasource.url}")
     31     private String dbUrl;
     32 
     33     @Value("${spring.datasource.username}")
     34     private String username;
     35 
     36     @Value("${spring.datasource.password}")
     37     private String password;
     38 
     39     @Value("${spring.datasource.driver-class-name}")
     40     private String driverClassName;
     41 
     42     @Value("${spring.datasource.initialSize}")
     43     private int initialSize;
     44 
     45     @Value("${spring.datasource.minIdle}")
     46     private int minIdle;
     47 
     48     @Value("${spring.datasource.maxActive}")
     49     private int maxActive;
     50 
     51     @Value("${spring.datasource.maxWait}")
     52     private int maxWait;
     53 
     54     @Value("${spring.datasource.timeBetweenEvictionRunsMillis}")
     55     private int timeBetweenEvictionRunsMillis;
     56 
     57     @Value("${spring.datasource.minEvictableIdleTimeMillis}")
     58     private int minEvictableIdleTimeMillis;
     59 
     60     @Value("${spring.datasource.validationQuery}")
     61     private String validationQuery;
     62 
     63     @Value("${spring.datasource.testWhileIdle}")
     64     private boolean testWhileIdle;
     65 
     66     @Value("${spring.datasource.testOnBorrow}")
     67     private boolean testOnBorrow;
     68 
     69     @Value("${spring.datasource.testOnReturn}")
     70     private boolean testOnReturn;
     71 
     72     @Value("${spring.datasource.filters}")
     73     private String filters;
     74 
     75     @Value("${spring.datasource.logSlowSql}")
     76     private String logSlowSql;
     77 
     78     @Bean
     79     public ServletRegistrationBean druidServlet() {
     80         ServletRegistrationBean reg = new ServletRegistrationBean();
     81         reg.setServlet(new StatViewServlet());
     82         reg.addUrlMappings("/druid/*");
     83         reg.addInitParameter("loginUsername", username);
     84         reg.addInitParameter("loginPassword", password);
     85         reg.addInitParameter("logSlowSql", logSlowSql);
     86         return reg;
     87     }
     88 
     89     @Bean
     90     public FilterRegistrationBean filterRegistrationBean() {
     91         FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
     92         filterRegistrationBean.setFilter(new WebStatFilter());
     93         filterRegistrationBean.addUrlPatterns("/*");
     94         filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
     95         filterRegistrationBean.addInitParameter("profileEnable", "true");
     96         return filterRegistrationBean;
     97     }
     98 
     99 
    100     public DataSource druidDataSource() {
    101         DruidDataSource datasource = new DruidDataSource();
    102         datasource.setUrl(dbUrl);
    103         datasource.setUsername(username);
    104         datasource.setPassword(password);
    105         datasource.setDriverClassName(driverClassName);
    106         datasource.setInitialSize(initialSize);
    107         datasource.setMinIdle(minIdle);
    108         datasource.setMaxActive(maxActive);
    109         datasource.setMaxWait(maxWait);
    110         datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    111         datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
    112         datasource.setValidationQuery(validationQuery);
    113         datasource.setTestWhileIdle(testWhileIdle);
    114         datasource.setTestOnBorrow(testOnBorrow);
    115         datasource.setTestOnReturn(testOnReturn);
    116         try {
    117             datasource.setFilters(filters);
    118         } catch (SQLException e) {
    119             logger.error("druid configuration initialization filter", e);
    120         }
    121         return datasource;
    122     }
    123 
    124 }

    3、再在application.properties配置文件中配置相关参数

     1 #配置druid数据源
     2 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
     3 spring.datasource.url= jdbc:mysql://localhost:3306/dbName?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=round&transformedBitIsBoolean=true&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true
     4 spring.datasource.username=root
     5 spring.datasource.password=123456
     6 
     7 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
     8 # 下面为连接池的补充设置,应用到上面数据源中
     9 spring.datasource.initialSize=5
    10 spring.datasource.minIdle=5
    11 spring.datasource.maxActive=20
    12 # 配置获取连接等待超时的时间
    13 spring.datasource.maxWait=60000
    14 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    15 spring.datasource.timeBetweenEvictionRunsMillis=60000
    16 # 配置一个连接在池中最小生存的时间,单位是毫秒
    17 spring.datasource.minEvictableIdleTimeMillis=300000
    18 spring.datasource.validationQuery=SELECT 1 FROM DUAL
    19 spring.datasource.testWhileIdle=true
    20 spring.datasource.testOnBorrow=false
    21 spring.datasource.testOnReturn=false
    22 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    23 spring.datasource.filters=stat,wall,log4j
    24 spring.datasource.logSlowSql=true

    访问:http://localhost:8080/springboot/druid进行登录访问。

    可以看出,是使用了druid连接池的

  • 相关阅读:
    如何利用docker制作自己的镜像
    python 获取当前运行的 class 和 方法的名字
    UnitTest-case参数化
    值得推崇的一种图书出版的方式----开源图书
    Django中对数据查询、删除、修改
    wireshark网络实战分析二
    wireshark网络抓包分析
    邮件传输协议实战抓包分析
    socket服务端给客户端发送数据第一次不成功,第二次成功
    转载:Wireshark抓包详解
  • 原文地址:https://www.cnblogs.com/mYunYu/p/9914887.html
Copyright © 2011-2022 走看看