Spring Boot 學習筆記(1):快速上手

HOWD發表於2018-09-26

什麼是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特點

  1. 建立獨立的Spring應用程式
  2. 嵌入的Tomcat,無需部署WAR檔案
  3. 簡化Maven配置
  4. 自動配置Spring
  5. 提供生產就緒型功能,如指標,健康檢查和外部配置
  6. 絕對沒有程式碼生成並且對XML也沒有配置要求

快速上手


Maven構建專案

開啟IntelliJ IDEA

1.File -> New Project

Spring Boot 學習筆記(1):快速上手
2.Next
Spring Boot 學習筆記(1):快速上手
3.你可以在這裡選擇自己需要的,在生成最終的專案時會自動加入到maven中。
Spring Boot 學習筆記(1):快速上手
選擇完最終會生成一個簡單的Spring Boot專案
Spring Boot 學習筆記(1):快速上手
如上圖所示,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

後端一枚,默默搬磚擼程式碼,如果覺得不錯歡迎關注我的公眾號

Spring Boot 學習筆記(1):快速上手

相關文章