Blame view

java110-db/src/main/java/com/java110/db/DruidDataSourceConfig.java 2.51 KB
88e030b7   王彪总   init project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
  package com.java110.db;
  
  import com.alibaba.druid.pool.DruidDataSource;
  import org.springframework.beans.factory.annotation.Value;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  
  import javax.sql.DataSource;
  import java.io.*;
  import java.sql.SQLException;
  
  /**
   * 数据源配置
   */
  @Configuration
  public class DruidDataSourceConfig {
  
      @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.druid.initial-size}")
      private int initialSize;
  
      @Value("${spring.datasource.druid.min-idle}")
      private int minIdle;
  
      @Value("${spring.datasource.druid.max-active}")
      private int maxActive;
  
      @Value("${spring.datasource.druid.max-wait}")
      private int maxWait;
  
      /**
       * 构建dataSource
       * 这里没有使用ShardingDataSourceFactory
       * 因为要为durid数据源配置监听Filter
       *
       * @return 数据源对象
       * @throws SQLException sql异常
       * @throws IOException  IO 异常
       * @since 1.8
       */
      @Bean
      public DataSource dataSource() throws SQLException, IOException {
          DruidDataSource dataSource = new DruidDataSource();
          dataSource.setUrl(dbUrl);
          dataSource.setUsername(username);
          dataSource.setPassword(password);
          dataSource.setDriverClassName(driverClassName);
  
          //配置初始化大小、最小、最大
          dataSource.setInitialSize(initialSize);
          dataSource.setMinIdle(minIdle);
          dataSource.setMaxActive(maxActive);
  
          //配置获取连接等待超时的时间
          dataSource.setMaxWait(maxWait);
  
1d418ca8   王彪总   fix(config): 更新配置...
68
69
70
71
72
73
74
75
76
77
78
79
80
81
          //连接验证 - 防止使用已断开的连接
          dataSource.setValidationQuery("SELECT 1");
          dataSource.setTestWhileIdle(true);
          dataSource.setTestOnBorrow(true);
          dataSource.setTestOnReturn(false);
          dataSource.setTimeBetweenEvictionRunsMillis(60000);
          dataSource.setMinEvictableIdleTimeMillis(300000);
  
          //PSCache - 缓存PreparedStatement避免重复解析SQL
          dataSource.setPoolPreparedStatements(true);
          dataSource.setMaxPoolPreparedStatementPerConnectionSize(20);
  
          // 配置Druid的SQL监控,移除log4j2减少日志开销
          dataSource.setFilters("stat");
88e030b7   王彪总   init project
82
83
84
85
86
87
88
89
  
  
  
          return dataSource;
      }
  
  
  }