Spring Boot實際應用講解(一):Hello World

文/ZYRzyr
原文鏈接:http://www.jianshu.com/p/60f7e025c680

由於有童鞋反應,之前的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表示指向/myHTTP 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),HelloWorldControllerUT如下:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章