Spring Boot由一些模塊構成,如spring-boot
, spring-boot-autoconfigure
, spring-boot-starters
, spring-boot-cli
,spring-boot-actuator
等。
1. spring-boot
主庫,爲其他模塊提供特性支持。包括以下內容:
SpringApplication
類,提供靜態方法,方便編寫獨立運行的Spring應用。唯一的任務是創建和刷新一個合適的Spring ApplicationContext
。
嵌入式web應用,自帶容器(Tomcat, Jetty等)。
2. spring-boot-autoconfigure
Spring Boot可以基於classpath下的內容配置通用應用的大部分模塊。一個@EnableAutoConfiguration
註解觸發Spring上下文的自動配置。
自動配置嘗試推測用戶可能需要的bean。例如,如果H2DB在classpath中,但是用戶沒有配置任何db連接,那麼spring-boot-autoconfigure
推斷用戶需要一個in-memory
的db,因此自動配置爲用戶配置(默認創建的h2db的db名爲testdb, 用戶名爲caiwan,密碼無)。自動配置優先級低於用戶自定義的bean。
3. spring-boot-starters
starters是一系列便利的依賴描述,用戶可以增加到應用中,並由此取得Spring和相關技術的 一站式配置體驗,無需查看sample代碼並貼來貼去。例如,若用戶想要使用Spring和JPA來訪問db,則只需包含spring-boot-starter-data-jpa
依賴到pom
中即可。
4. spring-boot-cli
Spring的命令行應用,編譯和運行Groovy源碼,只需極少的代碼就可以運行應用,Spring CLI還可以監視文件,在它們改變時自動重新編譯和重啓。
5. spring-boot-actuator
spring boot actuator提供額外的自動配置,爲你的應用裝飾一些特性,使應用在生產環境下也可以快速部署和支持。例如,若你正在編寫一個JSON web服務,該模塊會提供一個服務器,安全,日誌,外部化配置,管理端點(management endpoints),評審等。關閉這些內建特性,或者擴展或替代它們都很容易。
6. spring-boot-loader
Spring Boot Loader提供祕籍允許你構建可用java –jar直接運行的jar包。一般無需直接使用spring-boot-loader
,而是通過Gradle或Maven插件使用。