派生自 projectDept/qhighschool

yn147
2023-11-24 d7963a84282c548fee3595b3343e6ae6ca49bb29
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
package com.qxueyou.scc.config;
 
import com.alibaba.druid.pool.DruidDataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
 
import javax.sql.DataSource;
import java.sql.SQLException;
 
@Configuration
@EnableConfigurationProperties(MySqlDataSourceConfig.class)
public class DruidDataSourceConfig {
    private static Logger logger = LoggerFactory.getLogger(DruidDataSourceConfig.class);
 
    @Autowired
    private MySqlDataSourceConfig mySqlDataSourceConfig;
 
    @Bean(name="druidDataSource")
    @Primary
    public DataSource druidDataSource(){
        DruidDataSource datasource = new DruidDataSource();
 
        datasource.setUrl(mySqlDataSourceConfig.getUrl());
        datasource.setUsername(mySqlDataSourceConfig.getUsername());
        datasource.setPassword(mySqlDataSourceConfig.getPassword());
        datasource.setDriverClassName(mySqlDataSourceConfig.getDriverClassName());
        datasource.setInitialSize(mySqlDataSourceConfig.getInitialSize());
        datasource.setMinIdle(mySqlDataSourceConfig.getMinIdle());
        datasource.setMaxActive(mySqlDataSourceConfig.getMaxActive());
        datasource.setMaxWait(mySqlDataSourceConfig.getMaxWait());
        datasource.setTimeBetweenEvictionRunsMillis(mySqlDataSourceConfig.getTimeBetweenEvictionRunsMillis());
        datasource.setMinEvictableIdleTimeMillis(mySqlDataSourceConfig.getMinEvictableIdleTimeMillis());
        datasource.setValidationQuery(mySqlDataSourceConfig.getValidationQuery());
        datasource.setTestWhileIdle(mySqlDataSourceConfig.isTestWhileIdle());
        datasource.setTestOnBorrow(mySqlDataSourceConfig.isTestOnBorrow());
        datasource.setTestOnReturn(mySqlDataSourceConfig.isTestOnReturn());
        datasource.setPoolPreparedStatements(mySqlDataSourceConfig.isPoolPreparedStatements());
        try {
            datasource.setFilters(mySqlDataSourceConfig.getFilters());
        } catch (SQLException e) {
            logger.error("Druid configuration initialization filter error.", e);
        }
        return datasource;
    }
}