前言
在上一篇啟動原理解析中的對Spring Boot的啟動原理
進行了初略的解讀,下面接著上篇的篇幅對大家常用的Tomcat web
容器在Spring-Boot
中啟動機制進行詳解。
在解讀embeddedTomcat
容器啟動之前有幾個要點需讀懂
Spring Boot @ConfigurationProperties
註解Spring Boot
容器的自動裝載機制
@ConfigurationProperties
在上篇解讀 Spring Boot 啟動原理 中遺留一些問題:如何修改Tomcat
埠、在Spring Boot
如何修改其預設引數 、Spring Boot
如何讀取application.properties
配置引數。
首先要知道一個核心事件監聽器ConfigFileApplicationListener
在Spring Boot 微程式啟動載入註冊listener
過程中首先載入的就是此監聽器。這個監聽器的核心作用就是讀取application.properties
配置檔案內容。微程式的application.properties
配置檔案有4個預設路徑:classpath:/,classpath:/config/,file:./,file:./config/
讀取搭配配置檔案中的引數後通過@ConfigurationProperties
註解的一個鬆散的繫結機制注入到預設配置實體類中。我們可以在spring-boot-autoconfigure.jar
架包中看到更多的預設配置。大家也可直接瀏覽官網提供的配置引數
Spring Boot 容器自動裝載機制
Spring Boot 通過掃描classpath
下的例項決定裝載哪個web容器。pom.xml
檔案中新增web容器依賴
Jetty容器依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
複製程式碼
Tomcat容器依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
複製程式碼
在做Demo
時我嘗試引入Tomcat
、Jetty
兩個依賴,最後微程式選擇啟動了Tomcat
。
Spring Boot Tomcat 啟動
最直接簡單粗暴的啟動解析。
在Tomcat的啟動過程中我們會發現,Spring Boot自動裝載Tomcat容器後啟動過程中是通過Connector
例項來設定微服務訪問埠的。
The last
三人行,必有我師。在給大家分享乾貨的同時,才疏學淺還望大家大刀予以斧正。也歡迎關注我的簡書,名稱為柴碼