springboot學習
springboot學習筆記
starter原理
starters是依賴關係的整理和封裝
- 將所有可能遇到的配置資訊提前配置好,寫在自動配置的jar包中。每個Starter基本都會有對應的自動配置。
- 是一套依賴座標的整合,可以讓匯入應用開發的依賴座標更方便,利用依賴傳遞的特性,把依賴打包了
無需配置(自動配置)、無需複製貼上依賴座標,一個座標即可完成所有入門級別操作。舉例:Web開發,只需要匯入spring-boot-starter-web。
常用的starter
依賴管理的原理
BOM(Bill of Materials)依賴清單,是由Maven提供的功能,就是dependencyMangament
BOM內定義成套相互相容的jar包版本集合
使用時依賴時,只需依賴該BOM檔案,即可放心的使用清單內的依賴jar包,且無需版本號。
BOM設計初衷:方便維護專案依賴版本升級。
1.繼承了spring-boot-starter-parent的好處和特點
- 預設編譯Java 1.8
- 通過spring-boot-denpendencies的pom管理所有公共Starter依賴的版本
- spring-boot-denpendencies通過Maven的一個特性來實現版本管理
- 隨用隨取,不用繼承父類所有的starter依賴。
2.pom檔案中的maven外掛
<!-- 作用:將一個SpringBoot的工程打包成為可執行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
自動配置(AutoConfiguration)原理
-
要配置的專案Pivotal團隊的開發人員都寫好了,主要是通過@Configuration實現
-
SpringBoot採用約定大於配置設計思想,將所有可能遇到的配置資訊提前配置好,寫在自動配置的jar包中。每個Starter基本都會有對應的自動配置。
-
SpringBoot幫我們將配置資訊寫好,存放在一個jar包中:spring-boot-autoconfigure-2.1.11.RELEASE.jar
-
jar包裡,存放的都是配置類,讓配置類生效的"規則類"
那麼自動配置的值在哪裡?
自動配置的值怎麼才能生效?
檢視啟動類註解@SpringBootApplication
追蹤步驟:
- @EnableAutoConfiguration
- @Import({AutoConfigurationImportSelector.class})
- spring.factories
- org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration
- @EnableConfigurationProperties({ServerProperties.class})
- private final ServerProperties.Tomcat tomcat = new ServerProperties.Tomcat();
有了自動配置,那麼基本全部採用預設配置。當然也可以更改預設配置,怎麼改?
相關文章
- SpringBoot 學習Spring Boot
- 開始SpringBoot的學習&springboot概述Spring Boot
- springboot學習日誌(二)– thymeleaf學習Spring Boot
- 《springboot學習篇4》Spring Boot
- SpringBoot 學習筆記Spring Boot筆記
- SpringBoot學習筆記Spring Boot筆記
- SpringBoot學習之mvcSpring BootMVC
- springboot 學習筆記(四)Spring Boot筆記
- SpringBoot學習之整合SwaggerSpring BootSwagger
- SpringBoot學習之整合MybatisSpring BootMyBatis
- SpringBoot學習之整合AOPSpring Boot
- springBoot-web 學習案例Spring BootWeb
- Rabbit學習---SpringBoot整合RabbitMQSpring BootMQ
- 學習微服務三-SpringBoot微服務Spring Boot
- SpringBoot中JPA的學習Spring Boot
- SpringBoot整合Activiti學習(一)Spring Boot
- SpringBoot原始碼學習3——SpringBoot啟動流程Spring Boot原始碼
- SpringBoot系統學習 - 配置篇Spring Boot
- SpringBoot運維學習筆記Spring Boot運維筆記
- springboot application.yml配置學習Spring BootAPP
- 學習springBoot(11)shiro安全框架Spring Boot框架
- Elasticsearch學習(三)springboot整合ElasticSearchElasticsearchSpring Boot
- Elasticsearch學習<四>SpringBoot整合esElasticsearchSpring Boot
- 【SpringBoot學習一】開發入門--快速建立springboot程式Spring Boot
- SpringBoot學習日記(一)開始Spring Boot
- netty學習(三)springboot+netty+mybatisNettySpring BootMyBatis
- SpringBoot系統學習 - 啟動篇Spring Boot
- 一文帶你學習SpringBootSpring Boot
- SpringBoot 學習之 No bean named ‘xxx’ availableSpring BootBeanAI
- springboot 開發學習筆記1Spring Boot筆記
- 個人學習系列 - SpringBoot整合RabbitMQSpring BootMQ
- SpringBoot學習之資料結構Spring Boot資料結構
- Springboot學習日記(二) Web應用Spring BootWeb
- SpringBoot+Shiro學習(四):Realm授權Spring Boot
- SpringBoot學習筆記(十五:OAuth2 )Spring Boot筆記OAuth
- SpringBoot學習筆記(十七:非同步呼叫)Spring Boot筆記非同步
- SpringBoot學習筆記(十七:MyBatis-Plus )Spring Boot筆記MyBatis
- OceanBase學習之路4|SpringBoot 連線示例Spring Boot