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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| @Configuration public class DruidConfig {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@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.initialSize}") private int initialSize;
@Value("${spring.datasource.minIdle}") private int minIdle;
@Value("${spring.datasource.maxActive}") private int maxActive;
@Value("${spring.datasource.maxWait}") private int maxWait;
@Value("${spring.datasource.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis;
@Value("${spring.datasource.minEvictableIdleTimeMillis}") private int minEvictableIdleTimeMillis;
@Value("${spring.datasource.validationQuery}") private String validationQuery;
@Value("${spring.datasource.testWhileIdle}") private boolean testWhileIdle;
@Value("${spring.datasource.testOnBorrow}") private boolean testOnBorrow;
@Value("${spring.datasource.testOnReturn}") private boolean testOnReturn;
@Value("${spring.datasource.poolPreparedStatements}") private boolean poolPreparedStatements;
@Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}") private int maxPoolPreparedStatementPerConnectionSize;
@Value("${spring.datasource.filters}") private String filters;
@Value("{spring.datasource.connectionProperties}") private String connectionProperti es;
@Bean @Primary public DataSource dataSource() { DruidDataSource datasource = new DruidDataSource(); logger.info("----------- druid datasource ----------");
datasource.setUrl(this.dbUrl); datasource.setUsername(username); datasource.setPassword(password); datasource.setDriverClassName(driverClassName);
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.setPoolPreparedStatements(poolPreparedStatements); datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize); try { datasource.setFilters(filters); } catch (SQLException e) { logger.error("druid configuration Exception", e); } datasource.setConnectionProperties(connectionProperties);
return datasource; }
@Bean public ServletRegistrationBean statViewServlet() { ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet()); servletRegistrationBean.addUrlMappings("/druid/*"); servletRegistrationBean.addInitParameter("allow", ""); servletRegistrationBean.addInitParameter("deny", ""); servletRegistrationBean.addInitParameter("loginUsername", "admin"); servletRegistrationBean.addInitParameter("loginPassword", "admin"); servletRegistrationBean.addInitParameter("resetEnable", "false"); return servletRegistrationBean; }
@Bean public FilterRegistrationBean statFilter() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/*"); filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } }
|