国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot數(shù)據(jù)源——為什么平時(shí)默認(rèn)線程池是Hikari

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot數(shù)據(jù)源——為什么平時(shí)默認(rèn)線程池是Hikari。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本文主要對DataSourceAutoConfiguration類進(jìn)行講解,然后對這個(gè)類的注解做一個(gè)解釋,所以直接打開這個(gè)類,開始看……

ps:我用的版本是2.3.0.RELEASE

目錄

DataSourceAutoConfiguration類注解

@Configuration(proxyBeanMethods = false)

@ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class })

@ConditionalOnMissingBean(type = "io.r2dbc.spi.ConnectionFactory")

@EnableConfigurationProperties(DataSourceProperties.class)

@Import({ DataSourcePoolMetadataProvidersConfiguration.class, DataSourceInitializationConfiguration.class })

DataSourcePoolMetadataProvidersConfiguration

DataSourceInitializationConfiguration

內(nèi)部類EmbeddedDatabaseConfiguration注解

@Conditional(EmbeddedDatabaseCondition.class)

內(nèi)部類PooledDataSourceConfiguration注解

@Conditional(PooledDataSourceCondition.class)

總結(jié)


DataSourceAutoConfiguration類注解

@Configuration(proxyBeanMethods = false)

@Configuration這個(gè)注解比較常用,就不說了,主要是proxyBeanMethods = false。表示禁用代理模式,此時(shí) Spring 不會(huì)為 @Configuration 注解所標(biāo)注的類生成代理對象,而是直接調(diào)用其中的方法。

在實(shí)際開發(fā)中,如果一個(gè)類中的方法都是獨(dú)立的、無狀態(tài)的 Bean 配置方法(即通過 @Bean 注解定義的方法),則可以將 @Configuration(proxyBeanMethods = false) 應(yīng)用于該類以提高性能。因?yàn)榻么砟J娇梢员苊?Spring 為每個(gè) Bean 配置方法創(chuàng)建代理對象,從而減少 Spring 容器初始化和運(yùn)行時(shí)的開銷。但需要注意的是,禁用代理模式可能會(huì)導(dǎo)致部分功能失效,比如聲明的 Bean 不能被切面增強(qiáng)等。

@ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class })

表示只有當(dāng) DataSourceEmbeddedDatabaseType 這兩個(gè)類在當(dāng)前應(yīng)用的類路徑上存在時(shí),被該注解所標(biāo)注的 Bean 或配置類才會(huì)被創(chuàng)建和注冊。其中 DataSource 是 Java 標(biāo)準(zhǔn)庫中的數(shù)據(jù)庫連接池接口,而 EmbeddedDatabaseType 則是 Spring Boot 提供的用于支持嵌入式數(shù)據(jù)庫的枚舉類。

@ConditionalOnMissingBean(type = "io.r2dbc.spi.ConnectionFactory")

表示只有當(dāng)容器中不存在 io.r2dbc.spi.ConnectionFactory 類型的 Bean 時(shí),被該注解所標(biāo)注的 Bean 或配置類才會(huì)被創(chuàng)建和注冊。其中 io.r2dbc.spi.ConnectionFactory 是 R2DBC 數(shù)據(jù)庫連接抽象接口。

@EnableConfigurationProperties(DataSourceProperties.class)

表示開啟 DataSourceProperties 配置屬性類的自動(dòng)注入。Spring Boot 會(huì)自動(dòng)根據(jù)字段或 setter 方法的名稱來匹配 DataSourceProperties 中的屬性,在容器啟動(dòng)時(shí)將配置文件中的屬性值自動(dòng)注入到 DataSourceProperties 類對象中。

通常情況下,在使用 Spring Boot 開發(fā)應(yīng)用時(shí),我們會(huì)使用 @ConfigurationProperties 注解來定義應(yīng)用需要的配置項(xiàng)。通過定義一個(gè)與配置文件對應(yīng)的配置屬性類,并使用 @EnableConfigurationProperties 進(jìn)行開啟自動(dòng)注入,我們可以將配置文件中的屬性值自動(dòng)注入到配置屬性類中,然后在應(yīng)用中使用該配置屬性類對象,從而方便地獲取和管理應(yīng)用的配置信息。

@Import({ DataSourcePoolMetadataProvidersConfiguration.class, DataSourceInitializationConfiguration.class })

@Import 注解中,傳入一個(gè)包含多個(gè)配置類的數(shù)組,表示將這些配置類中定義的 Bean 或組件導(dǎo)入到當(dāng)前的配置類中,以便在容器啟動(dòng)時(shí)一起注冊到 Spring 容器中。

具體來說,在使用 Spring Boot 開發(fā)應(yīng)用時(shí),我們可能需要使用到其他模塊或第三方庫中的 Bean 或組件,此時(shí)可以通過 @Import 注解將相關(guān)的配置類或組件導(dǎo)入到當(dāng)前應(yīng)用的配置類中。

DataSourcePoolMetadataProvidersConfiguration

為支持的數(shù)據(jù)源提供一個(gè)?DataSourcePoolMetadataProvider實(shí)例,用來提供數(shù)據(jù)源連接池元數(shù)據(jù)信息的,包括連接池名稱、最大連接數(shù)、空閑連接數(shù)等。

DataSourceInitializationConfiguration

初始化數(shù)據(jù)源的,包括執(zhí)行 SQL 腳本、設(shè)置數(shù)據(jù)源編碼等。

內(nèi)部類EmbeddedDatabaseConfiguration注解

@Configuration(proxyBeanMethods = false)不再贅述。

@Conditional(EmbeddedDatabaseCondition.class)

如果符合EmbeddedDatabaseCondition的條件,才能繼續(xù)往下讀取注解

判斷條件是getMatchOutcome的代碼

可以看出如果spring.datasource.url設(shè)置則不符合條件

如果滿足pooledCondition則不符合條件(直接看PooledDataSourceCondition,下邊再講)

如果沒有EmbeddedDatabase則不符合條件,其余符合

所以以上情況下嵌入式數(shù)據(jù)源是不會(huì)使用到的

下邊注解不再贅述

內(nèi)部類PooledDataSourceConfiguration注解

@Configuration(proxyBeanMethods = false)不再贅述

@Conditional(PooledDataSourceCondition.class)

這個(gè)條件類繼承了AnyNestedCondition這個(gè)類表示任一條件符合就生效

指定spring.datasource.type則生效

"com.zaxxer.hikari.HikariDataSource",
"org.apache.tomcat.jdbc.pool.DataSource", 
"org.apache.commons.dbcp2.BasicDataSource"

以上三個(gè)數(shù)據(jù)源有一個(gè)可用則生效,內(nèi)置的有HikariDataSource所以生效@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })不再贅述

最后一個(gè)Import注解第一個(gè)導(dǎo)入的就是DataSourceConfiguration.Hikari,所以生效的就是Hikari它,并且這些類的注解上都有一個(gè)@ConditionalOnMissingBean(DataSource.class)。

總結(jié)

數(shù)據(jù)源開胃菜,復(fù)習(xí)注解文章來源地址http://www.zghlxwxcb.cn/news/detail-459850.html

到了這里,關(guān)于SpringBoot數(shù)據(jù)源——為什么平時(shí)默認(rèn)線程池是Hikari的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot + (mysql/pgsql) + jpa 多數(shù)據(jù)源(不同類數(shù)據(jù)源)

    ?配置文件: datasourceconfig: 數(shù)據(jù)源一: 數(shù)據(jù)源二:

    2024年02月14日
    瀏覽(22)
  • Springboot多路數(shù)據(jù)源

    1、多路數(shù)據(jù)源配置 (1)SpringBoot+MyBatis-Plus+Oracle實(shí)現(xiàn)多數(shù)據(jù)源配置 https://blog.csdn.net/weixin_44812604/article/details/127386828 (2)SpringBoot+Mybatis搭建Oracle多數(shù)據(jù)源配置簡述 https://blog.csdn.net/HJW_233/article/details/129103370 (3)SpringBoot+Mybatis+Oracle 增刪改查(簡單的案例,超詳細(xì)) https://blo

    2024年02月12日
    瀏覽(24)
  • springboot配置數(shù)據(jù)源

    Spring Framework 為 SQL 數(shù)據(jù)庫提供了廣泛的支持。從直接使用 JdbcTemplate 進(jìn)行 JDBC 訪問到完全的對象關(guān)系映射(object relational mapping)技術(shù),比如 Hibernate。Spring Data 提供了更多級(jí)別的功能,直接從接口創(chuàng)建的 Repository 實(shí)現(xiàn),并使用了約定從方法名生成查詢。 1、JDBC 1、創(chuàng)建項(xiàng)目,導(dǎo)

    2024年02月08日
    瀏覽(29)
  • springboot多數(shù)據(jù)源使用

    springboot多數(shù)據(jù)源使用

    在工作上有一個(gè)新項(xiàng)目,現(xiàn)在需要獲取舊項(xiàng)目的用戶信息、積分的操作等等,所以需要調(diào)用另外一個(gè)項(xiàng)目的數(shù)據(jù)庫,所以我們可以配置多數(shù)據(jù)源。 yml版本 ?properties版本 在impl類上加注解@DS(\\\"master\\\"),master為配置的master名字 調(diào)用方法 ?獲取結(jié)果 ?在impl類上加注解@DS(\\\"slave_1\\\"),

    2024年02月11日
    瀏覽(24)
  • springboot,多數(shù)據(jù)源切換

    需求介紹: ????????要求做一個(gè)平臺(tái),有其他第三方系統(tǒng)接入;每個(gè)系統(tǒng)有自己的數(shù)據(jù)源配置,通過調(diào)用平臺(tái)接口,實(shí)現(xiàn)將數(shù)據(jù)保存到第三方自己的數(shù)據(jù)庫中; 實(shí)現(xiàn)過程: ? ? ? ? 1.在平臺(tái)項(xiàng)目運(yùn)行時(shí),通過接口獲取每個(gè)第三方系統(tǒng)的數(shù)據(jù)源;以key-value的形式保存到全局

    2024年02月16日
    瀏覽(18)
  • SpringBoot動(dòng)態(tài)切換數(shù)據(jù)源

    SpringBoot動(dòng)態(tài)切換數(shù)據(jù)源

    ? Spring提供一個(gè)DataSource實(shí)現(xiàn)類用于動(dòng)態(tài)切換數(shù)據(jù)源—— AbstractRoutingDataSource pom.xml 大概的項(xiàng)目結(jié)構(gòu) 注意:這兩個(gè)事務(wù)管理器,并不能處理分布式事務(wù) 鏈接:https://pan.baidu.com/s/1ymxeKYkI-cx7b5nTQX0KWQ? 提取碼:6bii? --來自百度網(wǎng)盤超級(jí)會(huì)員V4的分享? ? ? ? ? ? ? ??

    2024年02月06日
    瀏覽(19)
  • Springboot 多數(shù)據(jù)源 dynamic-datasource動(dòng)態(tài)添加移除數(shù)據(jù)源

    Springboot 多數(shù)據(jù)源 dynamic-datasource動(dòng)態(tài)添加移除數(shù)據(jù)源

    上一篇文章我們講了如何通過多數(shù)據(jù)源組件,在Spring boot Druid 連接池項(xiàng)目中配置多數(shù)據(jù)源,并且通過@DS注解的方式切換數(shù)據(jù)源,《Spring Boot 配置多數(shù)據(jù)源【最簡單的方式】》。但是在多租戶的業(yè)務(wù)場景中,我們通常需要手動(dòng)的切換數(shù)據(jù)源,那么本文將解答你的額疑惑。 dynam

    2024年02月13日
    瀏覽(20)
  • ruoyi(若依)配置多數(shù)據(jù)源(mysql+postgresql),rouyi(Springboot)多數(shù)據(jù)源設(shè)置

    ruoyi(若依)配置多數(shù)據(jù)源(mysql+postgresql),rouyi(Springboot)多數(shù)據(jù)源設(shè)置

    (1)修改DatasourceType (2)修改DruidConfig,這里有很多細(xì)節(jié)要注意,就是大小寫的問題 (3)使用選擇數(shù)據(jù)源,會(huì)自動(dòng)切換數(shù)據(jù)源

    2024年02月16日
    瀏覽(32)
  • springboot之多數(shù)據(jù)源配置

    springboot之多數(shù)據(jù)源配置

    實(shí)際開發(fā)中,進(jìn)場可能遇到在一個(gè)引用中可能需要訪問多個(gè)數(shù)據(jù)庫的情況,以下是兩種典型場景: 數(shù)據(jù)分布在不同的數(shù)據(jù)庫匯總,數(shù)據(jù)庫拆了,應(yīng)用沒拆。一個(gè)公司多個(gè)子項(xiàng)目,各用各的數(shù)據(jù)庫,涉及數(shù)據(jù)共享。。。。 為了解決數(shù)據(jù)庫的讀性能瓶頸(讀比寫性能更高,寫鎖

    2024年02月07日
    瀏覽(26)
  • SpringBoot Redis 配置多數(shù)據(jù)源

    SpringBoot Redis 配置多數(shù)據(jù)源

    使用 RedisTemplate 支持多個(gè) Redis 數(shù)據(jù)庫 《Redis 從入門到精通【進(jìn)階篇】之Lua腳本詳解》 《Redis 從入門到精通【實(shí)踐篇】SpringBoot Redis 配置多數(shù)據(jù)源》 《Redis 從入門到精通【進(jìn)階篇】三分鐘了解Redis地理位置數(shù)據(jù)結(jié)構(gòu)GeoHash》 《Redis 從入門到精通【進(jìn)階篇】一文學(xué)會(huì)Lua腳本》 《

    2024年02月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包