SpringBoot 快速入門+3分鐘打造RestAPI

作者:yizhiwazi
鏈接:https://www.jianshu.com/p/17e0e55c88db

序言:SpringBoot 是在Spring基礎上實現了自動配置的基礎框架,快速幫助Spring整合各種第三方框架,讓項目配置化繁為簡,大幅提高開發效率。

一、SpringBoot 五大特性

  • 1.座靠Spring (顛覆傳統)
  • 2.內嵌Tomcat(無需外部署)
  • 3.提供各種Starter (開箱即用 +簡化依賴 )
  • 4.提供自動配置 ( 媽媽再也不用擔我寫錯配置了)
  • 5.告別XML (實現約定大於配置 )
  • 高級傳送門:SpringBoot 官方參考指南

二、SpringBoot 快速入門

1.搭建開發環境

  • JDK版本:Oracle JDK 1.8+
  • 構建工具:Apache Maven 3.3.0+ (bin.zip)
  • 開發工具:IntelliJ IDEA 2017.2.6 / Eclipse 4.2+

2.創建第一個工程

使用官方推薦的 Spring Initializr 工具來構建第一個SpringBoot工程,按步驟選擇Web依賴和填寫信息之後,創建工程成功,如下圖:

SpringBoot 快速入門+3分鐘打造RestAPI

你可能會好奇:

為什麼沒有web.xml?

為什麼沒有applicationContext.xml?

為什麼沒有webapp目錄?

為什麼多了HelloWorldApplication?

為什麼多了application.properties?

先別急,咱們先從簡單的搭建流程入手,答案在最後進行揭曉。

3.POM依賴管理

打開工程的POM文件,查看繼承信息和相關依賴。

  • spring-boot-starter-parent 作為父工程,提供SpringBoot和Spring的相關依賴定義。
  • spring-boot-starter-web 引入Web和WebMvc的相關依賴。
 

org.springframework.boot
spring-boot-starter-parent
1.5.6.RELEASE







org.springframework.boot
spring-boot-starter-web



org.springframework.boot
spring-boot-starter-test
test


4.編寫RestAPI 輸出HelloWorld

Spring Initializr 已經默認幫我們創建了啟動類,這裡我們只需添加@Controller 和編寫相關RestAPI即可。

@SpringBootApplication
@Controller
public class SpringbootHelloworldApplication {

@GetMapping("/")
@ResponseBody
public String index() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(SpringbootHelloworldApplication.class, args); //啟動項目
}

5. 啟動項目

在上面的啟動類中,右鍵選擇Run SpringbootHelloworldApplication ,查看控制檯如下:

SpringBoot 快速入門+3分鐘打造RestAPI

在瀏覽器訪問:http://locahost:8080 ,返回結果如圖:

SpringBoot 快速入門+3分鐘打造RestAPI

6.單元測試

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc //開啟MockMvc
public class SpringbootHelloworldApplicationTests {
@Autowired
private MockMvc mockMvc; //注入MockMvc
@Test
public void testHelloController() throws Exception {
mockMvc.perform(get("/")) //請求方式+地址
.andDo(print()) //打印效果
.andExpect(status().isOk()) //預期狀態

.andExpect(content().string(containsString("Hello World")));
}
}

三、快速答疑

為什麼沒有XML?

回答:回顧傳統Spring項目,我們需要先後配置web/spring/mvc等XML配置文件。而SpringBoot則不需要XML,只需藉助註解和啟動類就能啟動項目。這背後得益於SpringBoot自動配置的構建原理,例如我們在POM文件引入了Web依賴,則項目在啟動的時候檢測到ClassPath存在Web依賴,就會自動執行WEB環境初始化,輕鬆完成SpringMVC初始化。

為什麼沒有webapp目錄?

回答:SpringBoot使用Resources目錄放置靜態文件和動態資源。比如static目錄可以直接讀取CSS/JS/IMG等靜態資源,而templates目錄可以直接讀取動態模板,例如Thymeleaf 和 FreeMarker 等。不過值得注意的是,如果工程項使用War類型進行打包,則必須創建webapp目錄,更多細節請戳《SpringBoot 工程結構說明》。

application.properties / application.yml 是什麼?

回答:這是SpringBoot項目的核心配置文件,更多細節請閱讀《SpringBoot 配置文件詳解 》。

HelloWorldApplication 是什麼?

回答:作為項目的啟動類,添加Main方法作為啟動入口,並添加@SpringBootApplication 便攜式啟動註解。

@SpringBootApplication 主要包含三大組件:

  • @EnableAutoConfiguration 開啟自動配置.
  • @ComponentScan 開啟組件掃描 例如@Controller,@Service等.
  • @Configuration 標記配置類 例如制定方法為上下文提供Bean.


分享到:


相關文章: