1. 程式人生 > >SpringCloud學習點滴——Spring boot的簡單入門1

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")));
}

}