亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot中的starter使用解析

 更新時(shí)間:2023年10月21日 08:40:18   作者:jjavaboy  
這篇文章主要介紹了springboot中的starter使用解析,引入了starter依賴之后,基礎(chǔ)組件就可以像在spring的bean一樣在項(xiàng)目中使用,那其實(shí)只要找到在哪里加載了這些bean就明白了,需要的朋友可以參考下

springboot中的starter

平時(shí)spring boot項(xiàng)目使用mybatis的可能很大概念都會(huì)見到引入依賴

<dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>xx.xx.xx</version>
</dependency>

或者有時(shí)我們也會(huì)引入一些自己項(xiàng)目基礎(chǔ)組件的starter依賴,有時(shí)不明白原理的可以就比較迷茫,主要是引入了starter依賴之后,基礎(chǔ)組件就可以像在spring的bean一樣在項(xiàng)目中使用,那其實(shí)只要找到在哪里加載了這些bean就明白了。

因?yàn)閙ybatis-spring-boot-starter里還依賴了一些跟mybatis相關(guān)的依賴,如下:

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-autoconfigure</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
    </dependency>
  </dependencies>

仔細(xì)看有依賴包mybatis-spring-boot-autoconfigure,這里就是真正加載bean的,

在這里插入圖片描述

包里有文件META-INF/spring.factories,內(nèi)容:

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.mybatis.spring.boot.autoconfigure.MybatisLanguageDriverAutoConfiguration,\
org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration

繼續(xù)看看兩個(gè)類

@org.springframework.context.annotation.Configuration
@ConditionalOnClass({ SqlSessionFactory.class, SqlSessionFactoryBean.class })
@ConditionalOnSingleCandidate(DataSource.class)
@EnableConfigurationProperties(MybatisProperties.class)
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, MybatisLanguageDriverAutoConfiguration.class })
public class MybatisAutoConfiguration implements InitializingBean {
   //...
}
@Configuration
@ConditionalOnClass(LanguageDriver.class)
public class MybatisLanguageDriverAutoConfiguration {
   //...
}

這里已經(jīng)比較明朗了,平時(shí)我們使用spring boot定義bean時(shí)都會(huì)寫@Configuration修飾的類里去注冊(cè)bean到spring容器里的,所以starter主要就是在META-INF/spring.factories文件指定好bean注冊(cè)類,讓spring容器啟動(dòng)時(shí)去掃描注冊(cè)bean就可以了。 但是我們?cè)陧?xiàng)目里@Configuration注冊(cè)的bean可以,而依賴包里的就要額外加上META-INF/spring.factories來指定注冊(cè)類,因?yàn)閟pring默認(rèn)只會(huì)掃描當(dāng)前項(xiàng)目里的@Configuration類,所以需要加上META-INF/spring.factories來指定注冊(cè)類,這樣spring可以額外掃描依賴包里的注冊(cè)bean,其實(shí)就是使用了類似SPI機(jī)制,可以讓使用者可以自行擴(kuò)展實(shí)現(xiàn)類。

到此這篇關(guān)于springboot中的starter使用解析的文章就介紹到這了,更多相關(guān)springboot中的starter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中l(wèi)ogback?自動(dòng)刷新不生效的問題解決

    Java中l(wèi)ogback?自動(dòng)刷新不生效的問題解決

    本文主要介紹了Java中l(wèi)ogback?自動(dòng)刷新不生效的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java命令設(shè)計(jì)模式詳解

    Java命令設(shè)計(jì)模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java命令設(shè)計(jì)模式,對(duì)命令設(shè)計(jì)模式進(jìn)行分析理解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 解決JAVA遍歷List集合,刪除數(shù)據(jù)時(shí)出現(xiàn)的問題

    解決JAVA遍歷List集合,刪除數(shù)據(jù)時(shí)出現(xiàn)的問題

    這篇文章主要介紹了解決JAVA遍歷List集合時(shí),刪除數(shù)據(jù)出現(xiàn)的問題,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 深入dom4j使用selectSingleNode方法報(bào)錯(cuò)分析

    深入dom4j使用selectSingleNode方法報(bào)錯(cuò)分析

    本篇文章是對(duì)dom4j使用selectSingleNode方法報(bào)錯(cuò)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • mybatis-plus主鍵策略生成失敗的解決

    mybatis-plus主鍵策略生成失敗的解決

    本文主要介紹了mybatis-plus主鍵策略生成失敗的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Java如何去掉指定字符串的開頭的指定字符

    Java如何去掉指定字符串的開頭的指定字符

    這篇文章主要介紹了Java去掉指定字符串的開頭的指定字符操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java SSLContext創(chuàng)建方式

    java SSLContext創(chuàng)建方式

    這篇文章主要介紹了java SSLContext創(chuàng)建方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java線程通信及線程虛假喚醒知識(shí)總結(jié)

    Java線程通信及線程虛假喚醒知識(shí)總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Java線程的相關(guān)知識(shí),文章圍繞著Java線程通信及線程虛假喚醒的知識(shí)展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 支撐Java NIO與NodeJS的底層技術(shù)

    支撐Java NIO與NodeJS的底層技術(shù)

    這篇文章主要為大家詳細(xì)介紹了支撐Java NIO與NodeJS的底層技術(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 如何用java給一個(gè)文件夾打成壓縮包(附代碼)

    如何用java給一個(gè)文件夾打成壓縮包(附代碼)

    項(xiàng)目中需要將文件夾打包成壓縮包下載,所以下面這篇文章主要給大家介紹了關(guān)于如何用java給一個(gè)文件夾打成壓縮包的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-10-10

最新評(píng)論