SpringBoot 學習
什么是 Springboot
Spring Boot 是 Spring 提供的一個子項目,用于快速構建 Spring 應用程序
傳統的問題:
- 導入依賴繁瑣
- 項目配置繁瑣
SpringBoot 的特性
- 起步依賴:整合所有 web 的依賴配置好了
- 自動配置:bean 對象自動注入到 ioc 容器
配置文件
-
properties 配置文件
-
yaml 配置文件(一般使用)
- 三方技術配置信息
- 自定義配置信息
-
yml 配置信息的關聯
-
@Value 方式
-
ConfigurationProperties 方式
-
整合 MyBatis
-
一般的服務架構
-
@Autowired: https://cloud.tencent.com/developer/article/1897255
Bean 管理
-
掃描
- 標簽
- 注解:@ComponetScan
-
注冊
- 內置
- 外部
- @Bean
- @Import
-
導入配置類
- 導入 ImportSelector 接口類實現(依賴第一種)
-
@EnableXxxx 注解,封裝 @Import 注解(其實都是 Java 語法)
-
- 內置
-
條件
自動配置原理
-
自動配置
遵循約定大約配置的原則,在 springboot 程序啟動后,起步依賴中的一些 bean 對象會自動注入到 ioc 容器 -
源碼分析
-
原理解釋
- 在主啟動類上添加了 SpringBootApplication 注解,這個注解組合了 EnableAutoConfiguration 注解
- EnableAutoConfiguration 注解又組合了 Import 注解,導入了 AutoConfigurationlmportSelector 類
- AutoConfigurationlmportSelector 類實現 selectlmports 方法,這個方法經過層層調用,最終會讀取 META-INF 目錄下的后綴名為 imports 的文件。當然了,boot2.7 以前的版本,讀取的是 spring.factories 文件
- 讀取到全類名了之后,會解析注冊條件,也就是 @Conditional 及其行生注解把滿足注冊條件的 Bean 對象自動注入到 I0C 容器中
自定義 starter
- 創建 mybatis-spring-boot-autoconfigure 模塊,提供自動配置功能,并自定義配置文件 META-INF/spring/xxx.imports
- 創建 mybatis-spring-boot-starter 模塊,在 starter 中引入自動配置模塊