|
|
@@ -0,0 +1,128 @@
|
|
|
+package com.uas.console.donate;
|
|
|
+
|
|
|
+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;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|