由於有童鞋反應,之前的Spring Boot 簡易使用指南內容太多且有不全之處,不方便閱讀,所以我將其拆分爲多篇,並分別對其進行更詳細的說明,有興趣可以關注本猿,後續將逐步推出。
本文提綱
一、Spring Boot簡介
二、Hello World實戰
三、最後
本文運行環境
Ubuntu 16.04 LTS
JDK 8 +
IntelliJ IDEA ULTIMATE 2017.2
Maven 3.5.0
Spring Boot 1.5.8.RELEASE
一、Spring Boot簡介
來自官方的描述:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”...Most Spring Boot applications need very little Spring configuration.
簡而言之,就是只需要很少的配置,就能搭建一個可以輕鬆運行的產品級項目。
二、Hello World實戰
2.1 新建項目
IntelliJ IDEA
新建一個工程,選擇如下圖所示選項:
Next
,輸入項目信息之後,進入如下界面,選擇如圖選項後,一直Next
到最後Finish
:
Finish
,等待Maven下載相關依賴,此時可見如下目錄結構:
刪除選中的
5
個無用文件及文件夾,並將目錄中的application.properties
重命名爲application.yml
,此時,application.yml
即爲整個項目的配置文件,並且只有這一個。
2.2 第一次運行
2.2.1 啓動類
如Spring Boot
的簡介,快速使用,其提供一個現成的application
類:
package com.zyr.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//新建項目時自動生成,類名與項目名相關
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
1. 該類在新建項目時自動生成;
2. 僅有一個main
方法作爲入口;
3. SpringApplication
引導應用,並將application
本身作爲參數傳遞給run
方法。run
方法會啓動嵌入式的Tomcat
並初始化Spring
環境及其各Spring
組件。
2.2.2 運行
右鍵main
方法,選擇Run DemoApplication
,或者直接按快捷鍵Shift + F10
,控制檯輸出一堆信息,看到最後一條類似:
2017-11-13 15:39:43.036 INFO 12254 --- [ main] com.zyr.demo.DemoApplication : Started DemoApplication in 1.351 seconds (JVM running for 1.743)
說明項目運行成功。此時打開瀏覽器輸入http://localhost:8080/
將顯示類似如下信息:
由於目前我們並未寫任何代碼,所以出錯。
2.3 Controller層
新建類HelloWorldController
:
package com.zyr.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
//@RequestMapping(value = "my", method = RequestMethod.GET)
@GetMapping("my")
public String say() {
return "Hello World!";
}
}
1. @RestController
:使其提供RESTful API
的支持,調用時可使返回JSON
或其它,此處僅返回String
;
2. @RequestMapping
:提供路由信息,其value
中的/my
表示指向/my
的HTTP Request
都會被映射到say
方法進行處理,method
表示請求方式,此處爲GET
;
3. @GetMapping
:第2
條的簡便方式,二者只能有一個,相應的還有@PostMapping
、@PutMapping
等等其它類型。
2.4 測試
2.4.1 手動測試
運行項目,打開瀏覽器,輸入http://localhost:8080/my
,將返回Hello World!
,說明成功。
2.4.2 Controller單元測試
一個好的程序,不能缺少好的測試用例(UT
),HelloWorldController
的UT
如下:
package com.zyr.demo.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class HelloWorldControllerTest {
@Autowired
private MockMvc mockMvc; //模擬網絡請求
@Test
public void say() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/my")) //GET方式請求`http:localhost:8080/my`
.andExpect(MockMvcResultMatchers.status().isOk()) //期望響應成功
.andExpect(MockMvcResultMatchers.content().string("Hello World!")); //期望響應值爲"Hello World!"
}
}
三、最後
1. 幾乎零
配置,就運行起了一個簡單的Spring Boot
項目,正如其簡介所說Most Spring Boot applications need very little Spring configuration
,極大的提高了開發效率;
2. 本文代碼已上傳至我的GitHub倉庫,進入以後將branches切換爲1-HelloWorld即可看見。
3. 後續將推出以下文章,敬請關注!
Spring Boot實際應用講解(二):配置詳解
Spring Boot實際應用講解(三):表單驗證
Spring Boot實際應用講解(四):RESTful API
Spring Boot實際應用講解(五):AOP之請求日誌
Spring Boot實際應用講解(六):MySQL + Spring-data-jpa(Hibernate)
Spring Boot實際應用講解(七):統一異常處理
Spring Boot實際應用講解(八):MySQL + Mybatis
Spring Boot實際應用講解(九):MySQL + Mybatis + Redis
文中若有錯之處,還請各位批評指正,謝謝!
原文作者/ZYRzyr
原文鏈接:http://www.jianshu.com/p/60f7e025c680
請進入這裏獲取授權:https://101709080007647.bqy.mobi