【轉】Spring Boot快速入門

簡介

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

Spring Boot讓咱們的Spring應用變的更輕量化。好比:你能夠僅僅依靠一個Java類來運行一個Spring引用。你也能夠打包你的應用爲jar並經過使用java -jar來運行你的Spring Web應用。web

Spring Boot的主要優勢:spring

  • 爲全部Spring開發者更快的入門
  • 開箱即用,提供各類默認配置來簡化項目配置
  • 內嵌式容器簡化Web項目
  • 沒有冗餘代碼生成和XML配置的要求

快速入門

本章主要目標完成Spring Boot基礎項目的構建,而且實現一個簡單的Http請求處理,經過這個例子對Spring Boot有一個初步的瞭解,並體驗其結構簡單、開發快速的特性。瀏覽器

系統要求:

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

本文采用Java 1.8.0_73Spring Boot 1.3.2調試經過。mvc

使用Maven構建項目

  1. 經過SPRING INITIALIZR工具產生基礎項目
  2. 訪問:http://start.spring.io/
  3. 選擇構建工具Maven Project、Spring Boot版本1.3.2以及一些工程基本信息,可參考下圖所示

    SPRING INITIALIZRapp

  4. 點擊Generate Project下載項目壓縮包
  5. 解壓項目包,並用IDE以Maven項目導入,以IntelliJ IDEA 14爲例:
  6. 菜單中選擇File-->New-->Project from Existing Sources...
  7. 選擇解壓後的項目文件夾,點擊OK
  8. 點擊Import project from external model並選擇Maven,點擊Next到底爲止。
  9. 若你的環境有多個版本的JDK,注意到選擇Java SDK的時候請選擇Java 7以上的版本

項目結構解析

項目結構框架

經過上面步驟完成了基礎項目的建立,如上圖所示,Spring Boot的基礎結構共三個文件(具體路徑根據用戶生成項目時填寫的Group全部差別):函數

  • src/main/java下的程序入口:Chapter1Application
  • src/main/resources下的配置文件:application.properties
  • src/test/下的測試入口:Chapter1ApplicationTests

生成的Chapter1ApplicationChapter1ApplicationTests類均可以直接運行來啓動當前建立的項目,因爲目前該項目未配合任何數據訪問或Web模塊,程序會在加載完Spring以後結束運行。spring-boot

引入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

編寫單元測試用例

打開的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()函數中。

  • 注意引入下面內容,讓statuscontentequalTo函數可用
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模塊實現了一個簡單的請求處理。

做者:程序猿DD 連接:https://www.jianshu.com/p/d24bceea7665 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

相關文章
相關標籤/搜索