1. 程式人生 > >Spring Boot 知識清單(一)SpringApplication

Spring Boot 知識清單(一)SpringApplication

>愛生活,愛編碼,微信搜一搜【架構技術專欄】關注這個喜歡分享的地方。本文 架構技術專欄 已收錄,有各種JVM、多執行緒、原始碼視訊、資料以及技術文章等你來拿。 #### 一、概述 目前Spring Boot已經發展到2.3.4.RELEASE ,對於它的好處網上也是鋪天蓋地的,這裡就不再重複了。直接說重點,從Spring Boot1.x一步步跟著迭代升級到現在的2.3.4也是遇到了很多的坑,瞭解其新版本的特性是非常重要的,可以幫助我們避免很多不必要的麻煩。 因為我也一直在搞基於Spring Boot技術棧的元件開發工作,最近準備針對基礎元件進行部分重構,所以順便把當前版本的特性從頭在順一遍,就當是回顧總結了,這個回顧只介紹目前版本的一些特性,不對特性展開來敘述,如果有興趣可以@我,我也會根據某一塊來進行詳細的分析。喜歡的朋友可以跟著看一看,希望對你有所幫助。 ## 二、從頭開始Application 首先我們先得來初始化各專案用於測試,大家可以使用官方的https://start.spring.io/ 生產,或者使用IDEA的外掛Spring Boot進行專案初始化,文末我也會放下我測試demo的地址。 #### 1、應用啟動失敗(Startup Failure) 如果應用啟動失敗,Spring Boot會幫我們把大概為什麼會啟動失敗的資訊列印在日誌中,如下面我用6080埠第二次啟動應用就會提示我如下 ```java *************************** APPLICATION FAILED TO START *************************** Description: Embedded servlet container failed to start. Port 6080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. ``` 有了這種友好的提示真是幸福感爆棚啊,而且Spring Boot 還給我們提供了更多的擴充套件介面FailureAnalyzer,並提供了響應得抽象類AbstractFailureAnalyzer。 如果我們不滿足他預設的啟動異常資訊,就可以通過FailureAnalyzer 來進行一些定製化開發(比如在異常發生的時候列印堆疊等)。 FailureAnalyzer的擴充套件使用了SPI的方式,所以在我們使用的時候需要在應用內建立META-INF/spring.factories,來宣告下我們的實現,下面上個小demo。 ```java /** 首先建立我們自己的類,並且可以根據自己的需要來進行異常攔截,這裡我攔截的就是端口占用異常PortInUseException * @ClassName LearningFailureAnalyzer * @Author QIANGLU * @Date 2020/9/23 9:10 下午 * @Version 1.0 */ public class LearningFailureAnalyzer extends AbstractFailure