-
Reference
-
Core Features
-
SpringApplication
使用SpringBoot開發應用,最簡單的啟動類,程式碼內容如下:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } }
當SpringBoot應用程式啟動失敗時,透過定製
FailureAnalyzer
可以獲得詳細的錯誤描述資訊。
SpringBoot允許應用開發者註冊自定義的FailureAnalyzer
的實現類,實現方法可參考文件。SpringBoot提供延遲初始化特性,允許Bean在使用時才完成構建和初始化操作,無需在啟動時即完成全部Bean的構建和初始化操作。
使用延遲初始化特性的優點,可以加快應用程式啟動,縮短啟動時間。
使用延遲初始化特性的缺點,應用啟動時只有部分必要的Bean完成了初始化,在處理業務時才會完成Bean的構建和初始化,可能掩蓋一些程式邏輯層面的問題。
使用延遲初始化特性時,需要考慮為Java應用分配足夠的資源,避免觸發Bean的構建和初始化,由於資源不足而失敗。在配置檔案中增加如下配置,可以啟用延遲初始化特性:
spring: main: lazy-initialization: true
對於關鍵的Bean,不期望使用延遲初始化特性,可以在類名上增加註解
@Lazy(false)
,關閉延遲初始化特性。如下是SpringBoot應用程式啟動時在控制檯輸出的Banner。
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.3.2)
SpringBoot允許開發者定製Banner,操作方法如下:
- 在類路徑中增加檔案
banner.txt
。 - 使用屬性
spring.banner.location
指定banner.txt
的位置。
SpringBoot在讀取
banner.txt
時,預設檔案編碼為UTF-8
。透過修改屬性spring.banner.charset
,可以修改解析banner.txt
時的編碼格式。關閉Banner,樣例程式碼,如下:
import org.springframework.boot.Banner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(MyApplication.class); application.setBannerMode(Banner.Mode.OFF); application.run(args); } }
SpringBoot框架在應用啟動過程中,按序觸發如下事件:
ApplicationStartingEvent
ApplicationEnvironmentPreparedEvent
ApplicationContextInitializedEvent
ApplicationPreparedEvent
ApplicationStartedEvent
AvailabilityChangeEvent
ApplicationReadyEvent
AvailabilityChangeEvent
ApplicationFailedEvent
對於實現介面
ApplicationContextAware
的Bean,SpringBoot應用初始化過程中會自動注入ApplicationContext
物件的例項。對於一般的應用開發者而言,對上述事件僅做基本瞭解即可。
透過定義Bean來接收
ApplicationArguments
,可以讀取SpringBoot應用啟動時的命令列引數。
在SpringApplication
執行後,執行一些業務相關的程式碼,可以定義實現介面ApplicationRunner
或者CommandLineRunner
的Bean。
SpringBoot允許開發者定義多個實現ApplicationRunner
或者CommandLineRunner
的Bean,這些Bean之間的執行順序,可以透過實現介面org.springframework.core.Ordered
或者使用註解org.springframework.core.annotation.Order
來定製。SpringBoot允許開發者透過實現
ExitCodeGenerator
介面的Bean來定製程式退出時的錯誤碼,藉以滿足特定執行環境、特定業務場景的訴求。修改SpringBoot應用的配置檔案,增加配置項
spring.application.admin.enabled
並指定為true
,可以開啟管理特性。假如開發者使用Java 21來開發、執行SpringBoot應用程式,可以考慮增加如下配置項,並指定為
true
,從而啟用Java 21的virtual threads
特性。spring.threads.virtual.enabled
spring.main.keep-alive
- 在類路徑中增加檔案
SpringBoot文件之SpringApplication的閱讀筆記
相關文章
- SpringBoot文件之Profiles的閱讀筆記Spring Boot筆記
- SpringBoot文件之IO的閱讀筆記Spring Boot筆記
- SpringBoot文件之Web的閱讀筆記Spring BootWeb筆記
- SpringBoot文件之入門的閱讀筆記Spring Boot筆記
- SpringBoot文件之Developing的閱讀筆記Spring Bootdev筆記
- SpringBoot文件之構建包的閱讀筆記Spring Boot筆記
- SpringBoot文件之Build Tool Plugins的閱讀筆記Spring BootUIPlugin筆記
- SpringBoot文件之Jar檔案格式的閱讀筆記Spring BootJAR筆記
- SpringBoot文件之Externalized Configuration的閱讀筆記Spring BootZed筆記
- SpringBoot文件之開源軟體依賴的閱讀筆記Spring Boot筆記
- SpringBoot文件之配置引數的後設資料的閱讀筆記Spring Boot筆記
- Kafka文件閱讀筆記(一)Kafka筆記
- React Router文件閱讀筆記(上)React筆記
- 《例項化需求》閱讀筆記(3)-活的文件筆記
- 《架構之美》閱讀筆記架構筆記
- 閱讀筆記筆記
- iOS PropertyList 文件閱讀記錄iOS
- 【閱讀筆記:字典】筆記
- gdbOF閱讀筆記筆記
- 閱讀筆記5筆記
- 閱讀筆記4筆記
- 閱讀筆記3筆記
- 閱讀筆記2筆記
- 閱讀筆記7筆記
- 閱讀筆記03筆記
- 閱讀筆記02筆記
- 閱讀筆記8筆記
- 閱讀筆記1筆記
- 夢斷程式碼閱讀筆記之六筆記
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- 《Clean Code》閱讀筆記筆記
- Dependencies for Graphs 閱讀筆記筆記
- javascript閱讀筆記01JavaScript筆記
- #EffectiveJava筆記#閱讀心得Java筆記
- 閱讀影片方法筆記筆記
- 《快速閱讀術》讀書筆記筆記
- JDK原始碼閱讀(5):HashTable類閱讀筆記JDK原始碼筆記
- JDK原始碼閱讀(4):HashMap類閱讀筆記JDK原始碼HashMap筆記