1. 程式人生 > >Spring Boot 入門篇 (一) 使用Intellij中的Spring Initializr來快速構建Spring Boot/Cloud工程

Spring Boot 入門篇 (一) 使用Intellij中的Spring Initializr來快速構建Spring Boot/Cloud工程

使用idea 構建 springboot 專案

在之前的所有Spring Boot和Spring Cloud相關博文中,都會涉及Spring Boot工程的建立。而建立的方式多種多樣,我們可以通過Maven來手工構建或是通過腳手架等方式快速搭建,也可以通過《Spring Boot快速入門》一文中提到的SPRING INITIALIZR頁面工具來建立,相信每位讀者都有自己最喜歡和最為熟練的建立方式。

本文我們將介紹嵌入的Intellij中的Spring Initializr工具,它同Web提供的建立功能一樣,可以幫助我們快速的構建出一個基礎的Spring Boot/Cloud工程。

  • 選單欄中選擇File
    =>New=>Project..,我們可以看到如下圖所示的建立功能視窗。其中Initial Service Url指向的地址就是Spring官方提供的Spring Initializr工具地址,所以這裡建立的工程實際上也是基於它的Web工具來實現的。

spring-initializr-in-intellij-1.png

  • 點選Next,等待片刻後,我們可以看到如下圖所示的工程資訊視窗,在這裡我們可以編輯我們想要建立的工程資訊。其中,Type可以改變我們要構建的工程型別,比如:Maven、Gradle;Language可以選擇:Java、Groovy、Kotlin。

spring-initializr-in-intellij-2.png

  • 點選Next,進入選擇Spring Boot版本和依賴管理的視窗。在這裡值的我們關注的是,它不僅包含了Spring Boot Starter POMs中的各個依賴,還包含了Spring Cloud的各種依賴。

spring-initializr-in-intellij-3.png

  • 點選Next,進入最後關於工程物理儲存的一些細節。最後,點選Finish就能完成工程的構建了。

spring-initializr-in-intellij-4.png

Intellij中的Spring Initializr雖然還是基於官方Web實現,但是通過工具來進行呼叫並直接將結果構建到我們的本地檔案系統中,讓整個構建流程變得更加順暢,還沒有體驗過此功能的Spring Boot/Cloud愛好者們不妨可以嘗試一下這種不同的構建方式。

Spring Boot 之 HelloWorld詳解

一、Spring Boot 自述

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”...Most Spring Boot applications need very little Spring configuration.

Spring Boot(英文中是“引導”的意思),是用來簡化Spring應用的搭建到開發的過程。應用開箱即用,只要通過 “just run”(可能是 java -jar 或 tomcat 或 maven外掛run 或 shell指令碼),就可以啟動專案。二者,Spring Boot 只要很少的Spring配置檔案(例如那些xml,property)。 因為“習慣優先於配置”的原則,使得Spring Boot在快速開發應用和微服務架構實踐中得到廣泛應用。   Javaer裝好JDK環境和Maven工具就可以開始學習Boot了~

二、HelloWorld實戰詳解

首先得有個maven基礎專案,可以直接使用Maven骨架工程生成Maven骨架Web專案,即man archetype:generate命令:

mvn archetype:generate -DgroupId=springboot -DartifactId=springboot-helloworld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2.1  pom.xml配置

程式碼如下:

<?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>springboot</groupId>
    <artifactId>springboot-helloworld</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-helloworld :: HelloWorld Demo</name>

    <!-- Spring Boot 啟動父依賴 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.3.RELEASE</version>
    </parent>

    <dependencies>
        <!-- Spring Boot web依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

只要加入一個 Spring Boot 啟動父依賴即可。  

2.2 Controller層

HelloWorldController的程式碼如下:

/**
 * Spring Boot HelloWorld案例
 *
 * Created by bysocket on 16/4/26.
 */
@RestController
public class HelloWorldController {

    @RequestMapping("/")
    public String sayHello() {
        return "Hello,World!";
    }
}

@RestController和@RequestMapping註解是來自SpringMVC的註解,它們不是SpringBoot的特定部分。 1. @RestController:提供實現了REST API,可以服務JSON,XML或者其他。這裡是以String的形式渲染出結果。 2. @RequestMapping:提供路由資訊,"/“路徑的HTTP Request都會被對映到sayHello方法進行處理。 具體參考,世界上最好的文件來源自官方的《Spring Framework Document

2.3 啟動應用類

和第一段描述一樣,開箱即用。如下面Application類:

/**
 * Spring Boot應用啟動類
 *
 * Created by bysocket on 16/4/26.
 */
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

1. @SpringBootApplication:Spring Boot 應用的標識 2. Application很簡單,一個main函式作為主入口。SpringApplication引導應用,並將Application本身作為引數傳遞給run方法。具體run方法會啟動嵌入式的Tomcat並初始化Spring環境及其各Spring元件。  

2.4 Controller層測試類

一個好的程式,不能缺少好的UT。針對HelloWorldController的UT如下:

/**
 * Spring Boot HelloWorldController 測試 - {@link HelloWorldController}
 *
 * Created by bysocket on 16/4/26.
 */
public class HelloWorldControllerTest {

    @Test
    public void testSayHello() {
        assertEquals("Hello,World!",new HelloWorldController().sayHello());
    }
}

三、執行

Just Run的宗旨,執行很簡單,直接右鍵Run執行Application類。同樣你也可以Debug Run。可以在控制檯中看到:

Tomcat started on port(s): 8080 (http)
Started Application in 5.986 seconds (JVM running for 7.398)

然後訪問 http://localhost:8080/ ,即可在頁面中看到Spring Boot對你 say hello:

Hello,World!

四、小結

1. Spring Boot pom配置 2. Spring Boot 啟動及原理 3. 對應程式碼分享在 Github 主頁