华为商城网站建设,dw怎样建设网站,网站建设怎么添加评论,凡科送审平台登录入口AliDruid 配置方法
#xff08;1#xff09;在实际工作中#xff0c;由于 HikariCP 和 Druid 应该各有千秋#xff0c;会发现偏向于监控#xff0c;有很多国内开发 者使用频次最高的 AliDruid#xff0c;我们来看看看如何配置。
!--druid--dependency1在实际工作中由于 HikariCP 和 Druid 应该各有千秋会发现偏向于监控有很多国内开发 者使用频次最高的 AliDruid我们来看看看如何配置。
!--druid--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.5/version/dependency
2一样的思路我们打开 DruidDataSourceAutoConfigure 配置类。
Configuration
ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)
AutoConfigureBefore(DataSourceAutoConfiguration.class)
EnableConfigurationProperties({DruidStatProperties.class, DataSourceProperties.class})
Import({DruidSpringAopConfiguration.class,DruidStatViewServletConfiguration.class,DruidWebStatFilterConfiguration.class,DruidFilterConfiguration.class})
public class DruidDataSourceAutoConfigure {BeanConditionalOnMissingBeanpublic DataSource dataSource() {return new DruidDataSourceWrapper();}/*** Register the {link DataSourcePoolMetadataProvider} instances to support DataSource metrics.** see DataSourcePoolMetadataProvidersConfiguration*/Beanpublic DataSourcePoolMetadataProvider druidDataSourcePoolMetadataProvider() {return new DataSourcePoolMetadataProvider() {Overridepublic DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource) {if (dataSource instanceof DruidDataSource) {return new DruidDataSourcePoolMetadata((DruidDataSource) dataSource);}return null;}};}
}
我们发现 Druid 继承了 DataSourceProperties 的配置。
3我们打开 DruidDataSourceWrapper
ConfigurationProperties(spring.datasource.druid)
class DruidDataSourceWrapper extends DruidDataSource implements InitializingBean {Autowiredprivate DataSourceProperties basicProperties;Overridepublic void afterPropertiesSet() throws Exception {//if not found prefix spring.datasource.druid jdbc properties ,spring.datasource prefix jdbc properties will be used.if (super.getUsername() null) {super.setUsername(basicProperties.determineUsername());}if (super.getPassword() null) {super.setPassword(basicProperties.determinePassword());}if (super.getUrl() null) {super.setUrl(basicProperties.determineUrl());}if (super.getDriverClassName() null) {super.setDriverClassName(basicProperties.determineDriverClassName());}}
......}
发现了 DataSource 的配置方法
spring.datasource.druid.urljdbc:mysql://127.0.0.1:3306/test # 或spring.datasource.url
spring.datasource.druid.usernamejack # 或spring.datasource.username
spring.datasource.druid.passwordjack123 # 或spring.datasource.password
spring.datasource.druid.driver-class-namecom.mysql.jdbc.Driver #或 spring.datasource.driver-class-name
4如果我们再打开 DruidDataSource 类就会发现连接池的配置方法
spring.datasource.druid.initial-size
spring.datasource.druid.max-active
spring.datasource.druid.min-idle
spring.datasource.druid.max-wait
spring.datasource.druid.pool-prepared-statements
spring.datasource.druid.max-pool-prepared-statement-per-connection-size
spring.datasource.druid.max-open-prepared-statements #和上面的等价
spring.datasource.druid.validation-query
spring.datasource.druid.validation-query-timeout
spring.datasource.druid.test-on-borrow
spring.datasource.druid.test-on-return
spring.datasource.druid.test-while-idle
spring.datasource.druid.time-between-eviction-runs-millis
spring.datasource.druid.min-evictable-idle-time-millis
spring.datasource.druid.max-evictable-idle-time-millis
spring.datasource.druid.filters #配置多个英文逗号分隔
....//more
如果再继续往上面看 DruidAbstractDataSource会发现很多默认值。
5如果依次打开以下这些类也会发现 Druid 的更多配置
Import({DruidSpringAopConfiguration.class,DruidStatViewServletConfiguration.class,DruidWebStatFilterConfiguration.class,DruidFilterConfiguration.class})
WebStatFilter 配置说明请参考 Druid Wiki配置 WebStatFilter
spring.datasource.druid.web-stat-filter.enabled #是否启用StatFilter默认值true
spring.datasource.druid.web-stat-filter.url-pattern
StatViewServlet 配置说明请参考 Druid Wiki配置 StatViewServlet
spring.datasource.druid.stat-view-servlet.enabled #是否启用StatViewServlet默认值true
spring.datasource.druid.stat-view-servlet.login-username
spring.datasource.druid.stat-view-servlet.login-password
Druid的更多配置请参看官方文档吧只是给大家举例如何一步一步的查看这些配置而得到如何配置。