日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Data JPA 从入门到精通~AliDruidDataSource的配置

發布時間:2024/7/23 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Data JPA 从入门到精通~AliDruidDataSource的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AliDruid 配置方法

(1)在實際工作中,由于 HikariCP 和 Druid 應該各有千秋,會發現偏向于監控,有很多國內開發 者使用頻次最高的 AliDruid,我們來看看看如何配置。

<!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.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 {@Bean@ConditionalOnMissingBeanpublic 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.url=jdbc:mysql://127.0.0.1:3306/test # 或spring.datasource.url= spring.datasource.druid.username=jack # 或spring.datasource.username= spring.datasource.druid.password=jack123 # 或spring.datasource.password= spring.datasource.druid.driver-class-name=com.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的更多配置請參看官方文檔吧,只是給大家舉例如何一步一步的查看這些配置,而得到如何配置。

總結

以上是生活随笔為你收集整理的Spring Data JPA 从入门到精通~AliDruidDataSource的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。