Browse Source

集成druid-spring-boot-starter1.1.2

sunlightcs 7 years ago
parent
commit
cb9e95e555

+ 2 - 2
pom-war.xml

@ -20,7 +20,7 @@
20 20
        <java.version>1.8</java.version>
21 21
        <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
22 22
        <mysql.version>5.1.38</mysql.version>
23
        <druid.version>1.0.28</druid.version>
23
        <druid.version>1.1.2</druid.version>
24 24
        <quartz.version>2.3.0</quartz.version>
25 25
        <commons.lang.version>2.6</commons.lang.version>
26 26
        <commons.fileupload.version>1.3.1</commons.fileupload.version>
@ -83,7 +83,7 @@
83 83
        </dependency>
84 84
        <dependency>
85 85
            <groupId>com.alibaba</groupId>
86
            <artifactId>druid</artifactId>
86
            <artifactId>druid-spring-boot-starter</artifactId>
87 87
            <version>${druid.version}</version>
88 88
        </dependency>
89 89
        <dependency>

+ 2 - 2
pom.xml

@ -20,7 +20,7 @@
20 20
		<java.version>1.8</java.version>
21 21
		<mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
22 22
		<mysql.version>5.1.38</mysql.version>
23
		<druid.version>1.0.28</druid.version>
23
		<druid.version>1.1.2</druid.version>
24 24
		<quartz.version>2.3.0</quartz.version>
25 25
		<commons.lang.version>2.6</commons.lang.version>
26 26
		<commons.fileupload.version>1.3.1</commons.fileupload.version>
@ -85,7 +85,7 @@
85 85
		</dependency>
86 86
		<dependency>
87 87
			<groupId>com.alibaba</groupId>
88
			<artifactId>druid</artifactId>
88
			<artifactId>druid-spring-boot-starter</artifactId>
89 89
			<version>${druid.version}</version>
90 90
		</dependency>
91 91
		<dependency>

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

@ -1,158 +0,0 @@
1
package io.renren.config;
2
3
import com.alibaba.druid.filter.Filter;
4
import com.alibaba.druid.filter.stat.StatFilter;
5
import com.alibaba.druid.pool.DruidDataSource;
6
import com.alibaba.druid.support.http.StatViewServlet;
7
import com.alibaba.druid.wall.WallConfig;
8
import com.alibaba.druid.wall.WallFilter;
9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
11
import org.springframework.beans.factory.annotation.Value;
12
import org.springframework.boot.web.servlet.ServletRegistrationBean;
13
import org.springframework.context.annotation.Bean;
14
import org.springframework.context.annotation.Configuration;
15
import org.springframework.context.annotation.Primary;
16
17
import javax.sql.DataSource;
18
import java.util.ArrayList;
19
import java.util.List;
20
21
/**
22
 * Druid配置
23
 *
24
 * @author chenshun
25
 * @email sunlightcs@gmail.com
26
 * @date 2017-04-21 0:00
27
 */
28
@Configuration
29
public class DruidConfig {
30
    private Logger logger = LoggerFactory.getLogger(DruidConfig.class);
31
32
    @Value("${spring.datasource.url:#{null}}")
33
    private String dbUrl;
34
    @Value("${spring.datasource.username: #{null}}")
35
    private String username;
36
    @Value("${spring.datasource.password:#{null}}")
37
    private String password;
38
    @Value("${spring.datasource.driverClassName:#{null}}")
39
    private String driverClassName;
40
    @Value("${spring.datasource.initialSize:#{null}}")
41
    private Integer initialSize;
42
    @Value("${spring.datasource.minIdle:#{null}}")
43
    private Integer minIdle;
44
    @Value("${spring.datasource.maxActive:#{null}}")
45
    private Integer maxActive;
46
    @Value("${spring.datasource.maxWait:#{null}}")
47
    private Integer maxWait;
48
    @Value("${spring.datasource.timeBetweenEvictionRunsMillis:#{null}}")
49
    private Integer timeBetweenEvictionRunsMillis;
50
    @Value("${spring.datasource.minEvictableIdleTimeMillis:#{null}}")
51
    private Integer minEvictableIdleTimeMillis;
52
    @Value("${spring.datasource.validationQuery:#{null}}")
53
    private String validationQuery;
54
    @Value("${spring.datasource.testWhileIdle:#{null}}")
55
    private Boolean testWhileIdle;
56
    @Value("${spring.datasource.testOnBorrow:#{null}}")
57
    private Boolean testOnBorrow;
58
    @Value("${spring.datasource.testOnReturn:#{null}}")
59
    private Boolean testOnReturn;
60
    @Value("${spring.datasource.poolPreparedStatements:#{null}}")
61
    private Boolean poolPreparedStatements;
62
    @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize:#{null}}")
63
    private Integer maxPoolPreparedStatementPerConnectionSize;
64
    @Value("${spring.datasource.filters:#{null}}")
65
    private String filters;
66
    @Value("{spring.datasource.connectionProperties:#{null}}")
67
    private String connectionProperties;
68
69
    @Bean
70
    @Primary
71
    public DataSource dataSource(){
72
        DruidDataSource datasource = new DruidDataSource();
73
74
        datasource.setUrl(this.dbUrl);
75
        datasource.setUsername(username);
76
        datasource.setPassword(password);
77
        datasource.setDriverClassName(driverClassName);
78
        //configuration
79
        if(initialSize != null) {
80
            datasource.setInitialSize(initialSize);
81
        }
82
        if(minIdle != null) {
83
            datasource.setMinIdle(minIdle);
84
        }
85
        if(maxActive != null) {
86
            datasource.setMaxActive(maxActive);
87
        }
88
        if(maxWait != null) {
89
            datasource.setMaxWait(maxWait);
90
        }
91
        if(timeBetweenEvictionRunsMillis != null) {
92
            datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
93
        }
94
        if(minEvictableIdleTimeMillis != null) {
95
            datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
96
        }
97
        if(validationQuery!=null) {
98
            datasource.setValidationQuery(validationQuery);
99
        }
100
        if(testWhileIdle != null) {
101
            datasource.setTestWhileIdle(testWhileIdle);
102
        }
103
        if(testOnBorrow != null) {
104
            datasource.setTestOnBorrow(testOnBorrow);
105
        }
106
        if(testOnReturn != null) {
107
            datasource.setTestOnReturn(testOnReturn);
108
        }
109
        if(poolPreparedStatements != null) {
110
            datasource.setPoolPreparedStatements(poolPreparedStatements);
111
        }
112
        if(maxPoolPreparedStatementPerConnectionSize != null) {
113
            datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
114
        }
115
116
        if(connectionProperties != null) {
117
            datasource.setConnectionProperties(connectionProperties);
118
        }
119
120
        List<Filter> filters = new ArrayList<>();
121
        filters.add(statFilter());
122
        filters.add(wallFilter());
123
        datasource.setProxyFilters(filters);
124
125
        return datasource;
126
    }
127
128
    @Bean
129
    public ServletRegistrationBean druidServlet() {
130
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
131
        servletRegistrationBean.setServlet(new StatViewServlet());
132
        servletRegistrationBean.addUrlMappings("/druid/*");
133
        return servletRegistrationBean;
134
    }
135
136
    @Bean
137
    public StatFilter statFilter(){
138
        StatFilter statFilter = new StatFilter();
139
        statFilter.setLogSlowSql(true);
140
        statFilter.setMergeSql(true);
141
        statFilter.setSlowSqlMillis(1000);
142
143
        return statFilter;
144
    }
145
146
    @Bean
147
    public WallFilter wallFilter(){
148
        WallFilter wallFilter = new WallFilter();
149
150
        //允许执行多条SQL
151
        WallConfig config = new WallConfig();
152
        config.setMultiStatementAllow(true);
153
        wallFilter.setConfig(config);
154
155
        return wallFilter;
156
    }
157
158
}

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

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

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

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

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

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

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

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