| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- package com.uas.sso;
- import com.alibaba.druid.pool.DruidDataSource;
- import com.alibaba.druid.support.http.StatViewServlet;
- import com.alibaba.druid.support.http.WebStatFilter;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- 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.sql.SQLException;
- @Configuration
- public class DruidDBConfiguration {
- private Logger logger = LoggerFactory.getLogger(DruidDBConfiguration.class);
- @Value("${datasource.url}")
- private String url;
- @Value("${datasource.username}")
- private String username;
- @Value("${datasource.password}")
- private String password;
- @Value("${datasource.driverClassName}")
- private String driverClassName;
- @Value("${datasource.initialSize}")
- private int initialSize;
- @Value("${datasource.minIdle}")
- private int minIdle;
- @Value("${datasource.maxActive}")
- private int maxActive;
- @Value("${datasource.maxWait}")
- private int maxWait;
- @Value("${datasource.timeBetweenEvictionRunsMillis}")
- private int timeBetweenEvictionRunsMillis;
- @Value("${datasource.minEvictableIdleTimeMillis}")
- private int minEvictableIdleTimeMillis;
- @Value("${datasource.validationQuery}")
- private String validationQuery;
- @Value("${datasource.testWhileIdle}")
- private boolean testWhileIdle;
- @Value("${datasource.testOnBorrow}")
- private boolean testOnBorrow;
- @Value("${datasource.testOnReturn}")
- private boolean testOnReturn;
- @Value("${datasource.timeBetweenLogStatsMillis}")
- private int timeBetweenLogStatsMillis;
- @Value("${datasource.poolPreparedStatements}")
- private boolean poolPreparedStatements;
- @Value("${datasource.maxPoolPreparedStatementPerConnectionSize}")
- private int maxPoolPreparedStatementPerConnectionSize;
- @Value("${datasource.filters}")
- private String filters;
- @Value("${datasource.connectionProperties}")
- private String connectionProperties;
- @Bean
- @Primary
- public DataSource dataSource() {
- DruidDataSource dataSource = new DruidDataSource();
- dataSource.setUrl(url);
- dataSource.setUsername(username);
- dataSource.setPassword(password);
- dataSource.setDriverClassName(driverClassName);
- // configuration
- dataSource.setInitialSize(initialSize);
- dataSource.setMinIdle(minIdle);
- dataSource.setMaxActive(maxActive);
- dataSource.setMaxWait(maxWait);
- dataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
- dataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
- dataSource.setValidationQuery(validationQuery);
- dataSource.setTestWhileIdle(testWhileIdle);
- dataSource.setTestOnBorrow(testOnBorrow);
- dataSource.setTestOnReturn(testOnReturn);
- dataSource.setTimeBetweenLogStatsMillis(timeBetweenLogStatsMillis);
- dataSource.setPoolPreparedStatements(poolPreparedStatements);
- dataSource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
- try {
- dataSource.setFilters(filters);
- } catch (SQLException e) {
- logger.error("数据源初始化失败: setFilters", e);
- }
- dataSource.setConnectionProperties(connectionProperties);
- return dataSource;
- }
- @Bean
- public ServletRegistrationBean servletRegistrationBean() {
- return new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
- }
- @Bean
- public FilterRegistrationBean filterRegistrationBean() {
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
- filterRegistrationBean.setFilter(new WebStatFilter());
- filterRegistrationBean.addUrlPatterns("/*");
- filterRegistrationBean.addInitParameter("exclusions",
- "*.js,*.gif,*.jpg,*.png,*.bmp,*.css,*.ico,*.html,/druid/*");
- return filterRegistrationBean;
- }
- }
|