什麼是Spring Boot?
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
從最根本上來講,Spring Boot就是一些庫的集合,它能夠被任意專案的構建系統所使用。簡便起見,該框架也提供了命令列介面,它可以用來執行和測試Boot應用。框架的釋出版本,包括整合的CLI(命令列介面),可以在Spring倉庫中手動下載和安裝。一種更為簡便的方式是使用Groovy環境管理器(Groovy enVironment Manager,GVM),它會處理Boot版本的安裝和管理。Boot及其CLI可以通過GVM的命令列gvm install springboot進行安裝。在OS X上安裝Boot可以使用Homebrew包管理器。為了完成安裝,首先要使用brew tap pivotal/tap切換到Pivotal倉庫中,然後執行brew install springboot命令。
為什麼要用Sping Boot?
Spring由於其繁瑣的配置,一度被人成為“配置地獄”,各種XML、Annotation配置,讓人眼花繚亂,而且如果出錯了也很難找出原因。Spring Boot專案就是為了解決配置繁瑣的問題,最大化的實現convention over configuration(約定大於配置)。熟悉Ruby On Rails(ROR框架的程式設計師都知道,藉助於ROR的腳手架工具只需簡單的幾步即可建立起一個Web應用程式。而Spring Boot就相當於Java平臺上的ROR。
Spring Boot特點
- 建立獨立的Spring應用程式
- 嵌入的Tomcat,無需部署WAR檔案
- 簡化Maven配置
- 自動配置Spring
- 提供生產就緒型功能,如指標,健康檢查和外部配置
- 絕對沒有程式碼生成並且對XML也沒有配置要求
快速上手
Maven構建專案
開啟IntelliJ IDEA
1.File -> New Project
2.Next 3.你可以在這裡選擇自己需要的,在生成最終的專案時會自動加入到maven中。 選擇完最終會生成一個簡單的Spring Boot專案 如上圖所示,Spring Boot的基礎結構共三個檔案:- src/main/java 程式開發以及主程式入口
- src/main/resources 配置檔案
- src/test/java 測試程式
另外,spingboot建議的目錄結果如下:
root package結構:com.example.myproject
採用預設配置可以省去很多配置,當然也可以根據自己的喜歡來進行更改
最後,啟動Application main方法。
/**
* @SpringBootApplication 來標註一個主程式類,說明這是一個Spring Boot應用
*/
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// Spring應用啟動
SpringApplication.run(DemoApplication.class, args);
}
}
複製程式碼
@SpringBootApplication:Spring Boot應用標註在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應該執行這個類的main方法來啟動SpringBoot應用;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
.................
}
複製程式碼
如果你不想使用 @SpringBootApplication 也可以使用 @EnableAutoConfiguration 和 @ComponentScan代替。
@SpringBootConfiguration:Spring Boot的配置類; 標註在某個類上,表示這是一個Spring Boot的配置類;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}
複製程式碼
@Configuration:配置類上來標註這個註解;
配置類 ----- 配置檔案;配置類也是容器中的一個元件;@Component
@EnableAutoConfiguration:開啟自動配置功能;
以前我們需要配置的東西,Spring Boot幫我們自動配置;@EnableAutoConfiguration告訴SpringBoot開啟自動配置功能;這樣自動配置才能生效;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
}
複製程式碼
@AutoConfigurationPackage:自動配置包
@Import(AutoConfigurationPackages.Registrar.class):
Spring的底層註解@Import,給容器中匯入一個元件;匯入的元件由AutoConfigurationPackages.Registrar.class; 將主配置類(@SpringBootApplication標註的類)的所在包及下面所有子包裡面的所有元件掃描到Spring容器;
感謝你花時間讀到結尾!:D
後端一枚,默默搬磚擼程式碼,如果覺得不錯歡迎關注我的公眾號