1. 程式人生 > >Spring Boot 快速入門示例

Spring Boot 快速入門示例

原文地址:Spring Boot 快速入門示例

越來越多的公司選擇使用 Spring Boot 來開發系統,它到底有什麼優點?為什麼越來越受歡迎?

Spring Boot 簡介

Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。使用 Spring Boot,可以輕鬆的建立獨立執行的程式,構建獨立的服務元件,是實現分散式架構、微服務架構利器。Spring Boot 簡化了第三方包的引用,通過提供的starter,簡化了依賴包的配置。

快速開始

Spring Boot 專案依賴 Maven 3.2+ ,如果你還沒有安裝 Maven,可以按照Maven 官方文件進行安裝配置。

Spring Boot 依賴項使用 org.springframework.boot groupId。通常,POM檔案將繼承 spring-boot-starter-parent 專案並宣告對一個或多個 starters 的依賴關係。 Spring Boot 還提供了一個可選的 Maven 外掛來建立可執行 jar。

下面是一個典型的 Spring Boot 專案 POM 檔案

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <
artifactId
>
demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.16.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

快速搭建 Spring Boot 專案

1、訪問http://start.spring.io/ 頁面如下圖所示

image

2、構建工具選擇 Maven Project,語言選擇Java,Spring Boot 最新版本為 2.0.5,這裡選擇 1.5.16,填寫 Group 和 Artifact,在 Dependencies 處填寫 web 按回車引入 web 模組,點選 Generate Project 下載 Spring Boot 專案壓縮包。

3、解壓後,匯入 idea,File -> Open -> 選擇解壓後的資料夾 -> OK,jar 下載完成後,一個 Spring Boot 專案就搭建成功了。

Spring Boot 專案結構

如下圖所示

image

  • src/main/java 存放 Java 檔案
  • src/main/resources 存放 Spring Boot 配置檔案
  • src/test/java 存放單元測試程式碼

執行 Spring Boot 專案

Spring Boot 內嵌 Tomcat,執行 DemoApplication 類主方法即可執行,當看到控制檯日誌以下內容說明啟動成功了。

Tomcat started on port(s): 8080 (http) with context path ''

編寫一個 Hello Spring Boot 的 Controller

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DemoController {

    @GetMapping("/")
    public String helloSpringBoot() {
        return "Hello Spring Boot";
    }
}

RestController 相當於 Controller + ResponseBody,該類的所有方法都會返回 json,不會跳轉頁面。

重新啟動 Spring Boot ,開啟瀏覽器訪問 http://localhost:8080 頁面就會顯示 Hello Spring Boot

單元測試

開啟的 src/test/java DemoApplicationTests.java 測試類,編寫簡單的http請求來測試

package com.example.demo;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    @Test
    public void contextLoads() throws Exception {
        MockMvc mockMvc = MockMvcBuilders.standaloneSetup(new DemoController()).build();

        MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/")
                .accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andReturn();

        MockMvcResultHandlers.print().handle(mvcResult);

        String response = mvcResult.getResponse().getContentAsString();
        System.err.println(response);
    }

}

熱部署

只需要引入 spring-boot-devtools 模組即可實現熱部署

 <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

本文所有程式碼放在 Github 上,地址:demo

參考資料

https://docs.spring.io/spring-boot/docs/1.5.16.RELEASE/reference/htmlsingle/