一 SpringBoot - SpringBoot 初識( 二 )

7、SpringBootApplication 注解詳情此注解 , 就是SpringBoot應用的核心啟動類;

一 SpringBoot - SpringBoot 初識

文章插圖
7.1 @SpringBootConfiguration 注解標注的類就是SpringBoot的核心配置類 , 是SpringBoot的專屬注解,實際上跟 @Configuration 注解一致(等同于以前的核心配置文件),在SpringBoot應用啟動時,會自動加載;
一 SpringBoot - SpringBoot 初識

文章插圖
@SpringBootConfiguration  實際上跟 @Configuration 注解一致;
一 SpringBoot - SpringBoot 初識

文章插圖
7.2 @EnableAutoConfiguration 注解開啟自動配置注解,以前都是手動創建xml核心配置文件,文件中增加核心配置,現在都交給SpringBoot框架自動配置;
一 SpringBoot - SpringBoot 初識

文章插圖
7.2.1 子注解 1 @AutoConfigurationPackage 子注解
  • 開啟自動配置包,實際上就是開啟spring的自動掃描功能;

一 SpringBoot - SpringBoot 初識

文章插圖
7.2.1.1 子注解 1 的子注解 @Import(AutoConfigurationPackages.Registrar.class)@Import(AutoConfigurationPackages.Registrar.class)將springBoot核心啟動類所在的父包及子包中所有的組件 , 自動添加到容器中
一 SpringBoot - SpringBoot 初識

文章插圖
  • 找到 springBoot核心啟動類所在的父包  加載的位置
1、點擊進入 @Import(AutoConfigurationPackages.Registrar.class)
一 SpringBoot - SpringBoot 初識

文章插圖
2、點擊 Evalute Expression
一 SpringBoot - SpringBoot 初識

文章插圖
3、執行Evalute【一 SpringBoot - SpringBoot 初識】可以看出是將springBoot核心啟動類所在的父包及子包中所有的組件,自動添加到容器中
一 SpringBoot - SpringBoot 初識

文章插圖

一 SpringBoot - SpringBoot 初識

文章插圖
7.2.2 子注解 2 @Import({EnableAutoConfigurationImportSelector.class})
  • 開啟自動配置將springboot框架下MET-INF/spring/spring.factories資源文件中,屬性值 org.springframework.boot.autoconfigure.EnableAutoConfiguration 指定的96個自動配置類,導入到容器中,實現自動配置,省去開發人員手動添加組件到容器中,減少開發的工作量,重心都放在核心業務開發中 , 不是配置上;

一 SpringBoot - SpringBoot 初識

文章插圖
  • 96個自動配置類
1、進入 @Import(EnableAutoConfigurationImportSelector.class)
一 SpringBoot - SpringBoot 初識

文章插圖
2、再進入 AutoConfigurationImportSelector
一 SpringBoot - SpringBoot 初識

文章插圖
3、跳到 getCandidateConfigurations  方法可以看到96個configuration 應該在 META-INF/spring.factories中
一 SpringBoot - SpringBoot 初識

文章插圖
4、我找到 META-INF/spring.factories
一 SpringBoot - SpringBoot 初識

文章插圖
5、在 spring.factories 找到 96個 configuration
一 SpringBoot - SpringBoot 初識

文章插圖
7.2.3 子注解 3 @ComponentScan 注解
  • 指定組件掃描 , 相當于spring核心配置xml文件中<context:component-scan></context:component-scan> 作用;
  • 可以指定一個自定義的包路徑(或者多個),執行組件掃描;
  • 注意:如果核心啟動類上,增加此注解,會導致默認的自動配置包失敗,以指定的為準 , 實際應用時,要避免此種情況出現;

一 SpringBoot - SpringBoot 初識

文章插圖
8、banner在 resources 下 創建文件 banner.txt ,網上復制圖案;
banner圖網址:https://www.bootschool.net/ascii

推薦閱讀