天天看點

Spring Boot快速入門簡介快速入門

簡介

在您第1次接觸和學習Spring架構的時候,是否因為其繁雜的配置而退卻了?在你第n次使用Spring架構的時候,是否覺得一堆反複黏貼的配置有一些厭煩?那麼您就不妨來試試使用Spring Boot來讓你更易上手,更簡單快捷地建構Spring應用!

Spring Boot讓我們的Spring應用變的更輕量化。比如:你可以僅僅依靠一個Java類來運作一個Spring引用。你也可以打包你的應用為jar并通過使用java -jar來運作你的Spring Web應用。

Spring Boot的主要優點:

  • 為所有Spring開發者更快的入門
  • 開箱即用,提供各種預設配置來簡化項目配置
  • 内嵌式容器簡化Web項目
  • 沒有備援代碼生成和XML配置的要求

https://blog.didispace.com/spring-boot-learning-1/#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8 快速入門

本章主要目标完成Spring Boot基礎項目的建構,并且實作一個簡單的Http請求處理,通過這個例子對Spring Boot有一個初步的了解,并體驗其結構簡單、開發快速的特性。

https://blog.didispace.com/spring-boot-learning-1/#%E7%B3%BB%E7%BB%9F%E8%A6%81%E6%B1%82%EF%BC%9A 系統要求:

  • Java 7及以上
  • Spring Framework 4.1.5及以上

本文采用

Java 1.8.0_73

Spring Boot 1.3.2

調試通過。

https://blog.didispace.com/spring-boot-learning-1/#%E4%BD%BF%E7%94%A8Maven%E6%9E%84%E5%BB%BA%E9%A1%B9%E7%9B%AE 使用Maven建構項目

  1. 通過

    SPRING INITIALIZR

    工具産生基礎項目
    1. 通路:

      http://start.spring.io/

Spring Boot快速入門簡介快速入門
    1. 點選

      Generate Project

      下載下傳項目壓縮包
  1. 解壓項目包,并用IDE以

    Maven

    項目導入,以

    IntelliJ IDEA 14

    為例:
    1. 菜單中選擇

      File

      –>

      New

      Project from Existing Sources...

    2. 選擇解壓後的項目檔案夾,點選

      OK

    3. Import project from external model

      并選擇

      Maven

      ,點選

      Next

      到底為止。
    4. 若你的環境有多個版本的JDK,注意到選擇

      Java SDK

      的時候請選擇

      Java 7

      以上的版本

項目結構解析

Spring Boot快速入門簡介快速入門

通過上面步驟完成了基礎項目的建立,如上圖所示,Spring Boot的基礎結構共三個檔案(具體路徑根據使用者生成項目時填寫的Group所有差異):

  • src/main/java

    下的程式入口:

    Chapter1Application

  • src/main/resources

    下的配置檔案:

    application.properties

  • src/test/

    下的測試入口:

    Chapter1ApplicationTests

生成的

Chapter1Application

Chapter1ApplicationTests

類都可以直接運作來啟動目前建立的項目,由于目前該項目未配合任何資料通路或Web子產品,程式會在加載完Spring之後結束運作。

https://blog.didispace.com/spring-boot-learning-1/#%E5%BC%95%E5%85%A5Web%E6%A8%A1%E5%9D%97 引入Web子產品

目前的

pom.xml

内容如下,僅引入了兩個子產品:

  • spring-boot-starter

    :核心子產品,包括自動配置支援、日志和YAML
  • spring-boot-starter-test

    :測試子產品,包括JUnit、Hamcrest、Mockito
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>      

引入Web子產品,需添加

spring-boot-starter-web

子產品:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>      

編寫HelloWorld服務

  • 建立

    package

    命名為

    com.didispace.web

    (根據實際情況修改)
  • HelloController

    類,内容如下
@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String index() {
        return "Hello World";
    }

}      
  • 啟動主程式,打開浏覽器通路

    http://localhost:8080/hello

    ,可以看到頁面輸出

    Hello World

https://blog.didispace.com/spring-boot-learning-1/#%E7%BC%96%E5%86%99%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B 編寫單元測試用例

打開的

src/test/

下的測試入口

Chapter1ApplicationTests

類。下面編寫一個簡單的單元測試來模拟http請求,具體如下:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class Chapter1ApplicationTests {

    private MockMvc mvc;

    @Before
    public void setUp() throws Exception {
        mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();
    }

    @Test
    public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().isOk())
                .andExpect(content().string(equalTo("Hello World")));
    }

}      

使用

MockServletContext

來建構一個空的

WebApplicationContext

,這樣我們建立的

HelloController

就可以在

@Before

函數中建立并傳遞到

MockMvcBuilders.standaloneSetup()

函數中。

  • 注意引入下面内容,讓

    status

    content

    equalTo

    函數可用
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;      

至此已完成目标,通過Maven建構了一個空白Spring Boot項目,再通過引入web子產品實作了一個簡單的請求處理。

https://blog.didispace.com/spring-boot-learning-1/#%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B 代碼示例

本文的相關例子可以檢視下面倉庫中的

chapter1

目錄:

如果您覺得本文不錯,歡迎

Star

支援,您的關注是我堅持的動力!

推薦: 使用Cloud Studio線上編寫、調試和管理Spring Boot應用