Kaynağa Gözat

集成druid-spring-boot-starter1.1.2

sunlightcs 7 yıl önce
ebeveyn
işleme
cb9e95e555

+ 2 - 2
pom-war.xml

@@ -20,7 +20,7 @@
         <java.version>1.8</java.version>
         <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
         <mysql.version>5.1.38</mysql.version>
-        <druid.version>1.0.28</druid.version>
+        <druid.version>1.1.2</druid.version>
         <quartz.version>2.3.0</quartz.version>
         <commons.lang.version>2.6</commons.lang.version>
         <commons.fileupload.version>1.3.1</commons.fileupload.version>
@@ -83,7 +83,7 @@
         </dependency>
         <dependency>
             <groupId>com.alibaba</groupId>
-            <artifactId>druid</artifactId>
+            <artifactId>druid-spring-boot-starter</artifactId>
             <version>${druid.version}</version>
         </dependency>
         <dependency>

+ 2 - 2
pom.xml

@@ -20,7 +20,7 @@
 		<java.version>1.8</java.version>
 		<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
 		<mysql.version>5.1.38</mysql.version>
-		<druid.version>1.0.28</druid.version>
+		<druid.version>1.1.2</druid.version>
 		<quartz.version>2.3.0</quartz.version>
 		<commons.lang.version>2.6</commons.lang.version>
 		<commons.fileupload.version>1.3.1</commons.fileupload.version>
@@ -85,7 +85,7 @@
 		</dependency>
 		<dependency>
 			<groupId>com.alibaba</groupId>
-			<artifactId>druid</artifactId>
+			<artifactId>druid-spring-boot-starter</artifactId>
 			<version>${druid.version}</version>
 		</dependency>
 		<dependency>

+ 0 - 158
src/main/java/io/renren/config/DruidConfig.java

@@ -1,158 +0,0 @@
-package io.renren.config;
-
-import com.alibaba.druid.filter.Filter;
-import com.alibaba.druid.filter.stat.StatFilter;
-import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.support.http.StatViewServlet;
-import com.alibaba.druid.wall.WallConfig;
-import com.alibaba.druid.wall.WallFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-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 javax.sql.DataSource;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Druid配置
- *
- * @author chenshun
- * @email sunlightcs@gmail.com
- * @date 2017-04-21 0:00
- */
-@Configuration
-public class DruidConfig {
-    private Logger logger = LoggerFactory.getLogger(DruidConfig.class);
-
-    @Value("${spring.datasource.url:#{null}}")
-    private String dbUrl;
-    @Value("${spring.datasource.username: #{null}}")
-    private String username;
-    @Value("${spring.datasource.password:#{null}}")
-    private String password;
-    @Value("${spring.datasource.driverClassName:#{null}}")
-    private String driverClassName;
-    @Value("${spring.datasource.initialSize:#{null}}")
-    private Integer initialSize;
-    @Value("${spring.datasource.minIdle:#{null}}")
-    private Integer minIdle;
-    @Value("${spring.datasource.maxActive:#{null}}")
-    private Integer maxActive;
-    @Value("${spring.datasource.maxWait:#{null}}")
-    private Integer maxWait;
-    @Value("${spring.datasource.timeBetweenEvictionRunsMillis:#{null}}")
-    private Integer timeBetweenEvictionRunsMillis;
-    @Value("${spring.datasource.minEvictableIdleTimeMillis:#{null}}")
-    private Integer minEvictableIdleTimeMillis;
-    @Value("${spring.datasource.validationQuery:#{null}}")
-    private String validationQuery;
-    @Value("${spring.datasource.testWhileIdle:#{null}}")
-    private Boolean testWhileIdle;
-    @Value("${spring.datasource.testOnBorrow:#{null}}")
-    private Boolean testOnBorrow;
-    @Value("${spring.datasource.testOnReturn:#{null}}")
-    private Boolean testOnReturn;
-    @Value("${spring.datasource.poolPreparedStatements:#{null}}")
-    private Boolean poolPreparedStatements;
-    @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize:#{null}}")
-    private Integer maxPoolPreparedStatementPerConnectionSize;
-    @Value("${spring.datasource.filters:#{null}}")
-    private String filters;
-    @Value("{spring.datasource.connectionProperties:#{null}}")
-    private String connectionProperties;
-
-    @Bean
-    @Primary
-    public DataSource dataSource(){
-        DruidDataSource datasource = new DruidDataSource();
-
-        datasource.setUrl(this.dbUrl);
-        datasource.setUsername(username);
-        datasource.setPassword(password);
-        datasource.setDriverClassName(driverClassName);
-        //configuration
-        if(initialSize != null) {
-            datasource.setInitialSize(initialSize);
-        }
-        if(minIdle != null) {
-            datasource.setMinIdle(minIdle);
-        }
-        if(maxActive != null) {
-            datasource.setMaxActive(maxActive);
-        }
-        if(maxWait != null) {
-            datasource.setMaxWait(maxWait);
-        }
-        if(timeBetweenEvictionRunsMillis != null) {
-            datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
-        }
-        if(minEvictableIdleTimeMillis != null) {
-            datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
-        }
-        if(validationQuery!=null) {
-            datasource.setValidationQuery(validationQuery);
-        }
-        if(testWhileIdle != null) {
-            datasource.setTestWhileIdle(testWhileIdle);
-        }
-        if(testOnBorrow != null) {
-            datasource.setTestOnBorrow(testOnBorrow);
-        }
-        if(testOnReturn != null) {
-            datasource.setTestOnReturn(testOnReturn);
-        }
-        if(poolPreparedStatements != null) {
-            datasource.setPoolPreparedStatements(poolPreparedStatements);
-        }
-        if(maxPoolPreparedStatementPerConnectionSize != null) {
-            datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
-        }
-
-        if(connectionProperties != null) {
-            datasource.setConnectionProperties(connectionProperties);
-        }
-
-        List<Filter> filters = new ArrayList<>();
-        filters.add(statFilter());
-        filters.add(wallFilter());
-        datasource.setProxyFilters(filters);
-
-        return datasource;
-    }
-
-    @Bean
-    public ServletRegistrationBean druidServlet() {
-        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
-        servletRegistrationBean.setServlet(new StatViewServlet());
-        servletRegistrationBean.addUrlMappings("/druid/*");
-        return servletRegistrationBean;
-    }
-
-    @Bean
-    public StatFilter statFilter(){
-        StatFilter statFilter = new StatFilter();
-        statFilter.setLogSlowSql(true);
-        statFilter.setMergeSql(true);
-        statFilter.setSlowSqlMillis(1000);
-
-        return statFilter;
-    }
-
-    @Bean
-    public WallFilter wallFilter(){
-        WallFilter wallFilter = new WallFilter();
-
-        //允许执行多条SQL
-        WallConfig config = new WallConfig();
-        config.setMultiStatementAllow(true);
-        wallFilter.setConfig(config);
-
-        return wallFilter;
-    }
-
-}

+ 28 - 13
src/main/resources/application-dev.yml

@@ -1,18 +1,33 @@
 spring:
     datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.jdbc.Driver
         url: jdbc:mysql://localhost:3306/renren_fast?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
         username: renren
         password: 123456
-        #连接池的配置信息
-        initialSize: 10
-        minIdle: 10
-        maxActive: 100
-        maxWait: 60000
-        timeBetweenEvictionRunsMillis: 60000
-        minEvictableIdleTimeMillis: 300000
-        validationQuery: SELECT 1 FROM DUAL
-        testWhileIdle: true
-        testOnBorrow: false
-        testOnReturn: false
-        poolPreparedStatements: true
-        maxPoolPreparedStatementPerConnectionSize: 20
+        druid:
+            initial-size: 10
+            max-active: 100
+            min-idle: 10
+            max-wait: 60000
+            pool-prepared-statements: true
+            max-pool-prepared-statement-per-connection-size: 20
+            time-between-eviction-runs-millis: 60000
+            min-evictable-idle-time-millis: 300000
+            validation-query: SELECT 1 FROM DUAL
+            test-while-idle: true
+            test-on-borrow: false
+            test-on-return: false
+            stat-view-servlet:
+                enabled: true
+                url-pattern: /druid/*
+                #login-username: admin
+                #login-password: admin
+            filter:
+                stat:
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true

+ 28 - 23
src/main/resources/application-pro.yml

@@ -1,28 +1,33 @@
 spring:
     datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.jdbc.Driver
         url: jdbc:mysql://localhost:3306/renren_fast?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
         username: renren
         password: 123456
-        #连接池的配置信息
-        initialSize: 10
-        minIdle: 10
-        maxActive: 100
-        maxWait: 60000
-        timeBetweenEvictionRunsMillis: 60000
-        minEvictableIdleTimeMillis: 300000
-        validationQuery: SELECT 1 FROM DUAL
-        testWhileIdle: true
-        testOnBorrow: false
-        testOnReturn: false
-        poolPreparedStatements: true
-        maxPoolPreparedStatementPerConnectionSize: 20
-# FastDFS 服务配置
-fdfs:
-    network-timeout: 5
-    connect-timeout: 30
-    tracker-server:
-        - 177.77.77.159:22122
-    charset: UTF-8
-    tracker-http-port: 8080
-    anti-steal-token: false
-    secret-key: FastDFS1234567890
+        druid:
+            initial-size: 10
+            max-active: 100
+            min-idle: 10
+            max-wait: 60000
+            pool-prepared-statements: true
+            max-pool-prepared-statement-per-connection-size: 20
+            time-between-eviction-runs-millis: 60000
+            min-evictable-idle-time-millis: 300000
+            validation-query: SELECT 1 FROM DUAL
+            test-while-idle: true
+            test-on-borrow: false
+            test-on-return: false
+            stat-view-servlet:
+                enabled: true
+                url-pattern: /druid/*
+                #login-username: admin
+                #login-password: admin
+            filter:
+                stat:
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true

+ 28 - 23
src/main/resources/application-test.yml

@@ -1,28 +1,33 @@
 spring:
     datasource:
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.jdbc.Driver
         url: jdbc:mysql://localhost:3306/renren_fast?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
         username: renren
         password: 123456
-        #连接池的配置信息
-        initialSize: 10
-        minIdle: 10
-        maxActive: 100
-        maxWait: 60000
-        timeBetweenEvictionRunsMillis: 60000
-        minEvictableIdleTimeMillis: 300000
-        validationQuery: SELECT 1 FROM DUAL
-        testWhileIdle: true
-        testOnBorrow: false
-        testOnReturn: false
-        poolPreparedStatements: true
-        maxPoolPreparedStatementPerConnectionSize: 20
-# FastDFS 服务配置
-fdfs:
-    network-timeout: 5
-    connect-timeout: 30
-    tracker-server:
-        - 177.77.77.159:22122
-    charset: UTF-8
-    tracker-http-port: 8080
-    anti-steal-token: false
-    secret-key: FastDFS1234567890
+        druid:
+            initial-size: 10
+            max-active: 100
+            min-idle: 10
+            max-wait: 60000
+            pool-prepared-statements: true
+            max-pool-prepared-statement-per-connection-size: 20
+            time-between-eviction-runs-millis: 60000
+            min-evictable-idle-time-millis: 300000
+            validation-query: SELECT 1 FROM DUAL
+            test-while-idle: true
+            test-on-borrow: false
+            test-on-return: false
+            stat-view-servlet:
+                enabled: true
+                url-pattern: /druid/*
+                #login-username: admin
+                #login-password: admin
+            filter:
+                stat:
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true

+ 0 - 3
src/main/resources/application.yml

@@ -12,9 +12,6 @@ spring:
     # 环境 dev|test|pro
     profiles:
         active: dev
-    datasource:
-        type: com.alibaba.druid.pool.DruidDataSource
-        driverClassName: com.mysql.jdbc.Driver
     # jackson时间格式化
     jackson:
         time-zone: GMT+8