Spring Boot特點:
- 依賴管理
- 基於java代碼的配置
- 自動配置
- Bean管理
- 嵌入式HTTP服務器,單一可執行jar包
依賴管理
Spring Boot的一大特色就是減少了POM依賴配置,Spring Boot通過提供一系列的Starter來管理依賴,保證依賴的兼容性和一致性。詳細可以參考我的另一篇博文Spring Boot Starter https://www.cnblogs.com/stronger-brother/p/12097235.html
基於java代碼的配置
傳統的Spring應用程序偏好XML配置,但是Spring Boot應用程序偏好基於Java代碼的配置,同時Spring Boot也支持XML配置。在Spring Boot中,配置類通過@Configuration注解標注,如果你偏好XML配置,可以在配置類上使用@ImportResource注解導入XML配置資源。配置可以按分類划入到多個配置類中,然后通過@Import注解導入合並,也可以使用@ComponentScan自動合並配置類。
自動配置
在啟動了自動配置之后,Spring Boot將會根據您的應用程序依賴的jar包自動配置Spring。例如,如果您的應用程序中包含HSQLDB包,您不需要配置任何數據庫連接Bean,Spring Boot會自動配置一個內存數據庫。通過在@Configuration配置類上標注@EnableAutoConfiguration來啟用自動配置,通過@EnableAutoConfiguration也可以禁用自動配置。例如,如果我們不想在引用了HSQLDB之后自動配置數據源,可以通過@EnableAutoConfiguration注解的exclude屬性排除對數據源的自動配置,代碼如下:
import org.springframework.boot.autoconfigure.*; import org.springframework.boot.autoconfigure.jdbc.*; import org.springframework.context.annotation.*; @Configuration(proxyBeanMethods = false) @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration { }
如果路徑中不存在要排除的類,可以使用@EnableAutoConfiguration的excludeName屬性通過指定類的全限定名稱排除。
Bean的管理
Spring Boot對Bean的管理和Spring是一致的,傳統的@Service、@Componennt、@Autowried注解依然可以使用,同時Spring Boot提供了@ComponentScan注解來進行組件掃描。
嵌入式HTTP服務器,單一可執行jar包
Spring Boot支持把Tomcat、Jetty等HTTP服務器嵌入到應用程序中,然后和應用代碼一起生成一個單一可執行的jar包,方便傳輸和部署。
@SpringBootApplication
@SpringBootApplication注解是一個集大成者,它集合了下面三個注解的功能的,從而簡化了配置。
- @EnableAutoConfiguration 啟用自動配置
- @ComponentScan 組件掃描
- @Configuation 配置Bean或導入其他的配置
package com.example.myapplication; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }