Spring Boot 啟動原理解析(二) Tomcat 啟動詳解

柴碼發表於2017-12-15

Spring Boot 啟動原理解析(二) Tomcat 啟動詳解

前言

在上一篇啟動原理解析中的對Spring Boot的啟動原理進行了初略的解讀,下面接著上篇的篇幅對大家常用的Tomcat web容器在Spring-Boot中啟動機制進行詳解。

在解讀embeddedTomcat容器啟動之前有幾個要點需讀懂

  • Spring Boot @ConfigurationProperties 註解
  • Spring Boot容器的自動裝載機制

@ConfigurationProperties

在上篇解讀 Spring Boot 啟動原理 中遺留一些問題:如何修改Tomcat埠、在Spring Boot如何修改其預設引數 、Spring Boot 如何讀取application.properties配置引數。

Spring Boot 啟動原理解析(二) Tomcat 啟動詳解

首先要知道一個核心事件監聽器ConfigFileApplicationListener在Spring Boot 微程式啟動載入註冊listener過程中首先載入的就是此監聽器。這個監聽器的核心作用就是讀取application.properties配置檔案內容。微程式的application.properties配置檔案有4個預設路徑:classpath:/,classpath:/config/,file:./,file:./config/

讀取搭配配置檔案中的引數後通過@ConfigurationProperties註解的一個鬆散的繫結機制注入到預設配置實體類中。我們可以在spring-boot-autoconfigure.jar架包中看到更多的預設配置。大家也可直接瀏覽官網提供的配置引數

Spring Boot 啟動原理解析(二) Tomcat 啟動詳解

Spring Boot 容器自動裝載機制

Spring Boot 啟動原理解析(二) Tomcat 啟動詳解
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時我嘗試引入TomcatJetty兩個依賴,最後微程式選擇啟動了Tomcat

Spring Boot Tomcat 啟動

Spring Boot 啟動原理解析(二) Tomcat 啟動詳解

最直接簡單粗暴的啟動解析。

Spring Boot 啟動原理解析(二) Tomcat 啟動詳解
在Tomcat的啟動過程中我們會發現,Spring Boot自動裝載Tomcat容器後啟動過程中是通過Connector例項來設定微服務訪問埠的。

The last

三人行,必有我師。在給大家分享乾貨的同時,才疏學淺還望大家大刀予以斧正。也歡迎關注我的簡書,名稱為柴碼

相關文章