SpringCloud學習點滴——Spring boot的簡單入門1
因為SpringCloud是在Spring Boot 的基礎上開發的,所以在學習Spring cloud之前,應該要對spring boot有一定的瞭解
一、首先構建一個Spring boot專案:
1、通過官方的Spring Initializr工具產生基礎專案
2、訪問http://start.spring.io/,裡面有各種的配置,直接圖形化配置好就行了
3、這裡我構建了maven project,Spring版本為了相容,使用2.1.1,然後其他按要求填寫即可
4、點選Generate Project下載專案壓縮包
5、解壓專案包,用Intellij idea來匯入專案
6、File->New->Project from Existing Sources,然後選擇自己剛才解壓的專案包就可以了
7、單擊Import project from external model並選擇Maven,一直next下去
二、開啟我們的pom檔案,我們看到很多依賴並不像我們常規的那樣,有組名,還有版本號,這裡的sprnig-boot-starter-web和sprnig-boot-starter-test模組,在Spring Boot中被稱為Starter POMS,這是一系列輕便的依賴包,開發者在使用和整合模組時,不需要去搜尋樣例程式碼中的依賴配置來複制使用,只需要引入對應的模組包即可。這樣使得木塊整合變得非常青橋,已於理解和使用。最後是專案構建的build部分,引入了Spring Boot的maven外掛,該外掛非常實用,可以幫助我們方便的啟停應用。
三、編寫一個Contrller實現我們的第一個hello world
package com.example.SpringBootdemo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String index(){
return "Hello world";
}
四、啟動我們的服務
1、可以選擇執行擁有main函式的類來啟動
2、在maven配置中,有個spring-boot外掛,可以使用它來啟動,比如執行mvn spring-boot:run命令啟動
3、將應用打包成jar包,再通過java -jar xxx.jar來啟動
4、啟動成功,埠號是預設的8080
五、編寫測試用例,模擬網路請求
package com.example.SpringBootdemo;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.awt.*;
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(
SpringJUnit4ClassRunner.class
)
@SpringBootTest(classes = SpringBootdemoApplication.class)
@WebAppConfiguration//開啟web應用的配置,用於模擬servletContext
public class SpringBootdemoApplicationTests {
private MockMvc mockMvc;//模擬呼叫controller的介面發起請求
@Before//test前要預載入的內容
public void setUp() throws Exception{
mockMvc = MockMvcBuilders.standaloneSetup(new SpringBootdemoApplication()).build();
}
@Test
public void contextLoads() throws Exception {
//執行一次請求呼叫
mockMvc.perform(MockMvcRequestBuilders.get("/hello")
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello world")));
}
}