Spring Boot快速入門之(三):自啟(Bootstrapping)
【注】本文譯自:https://www.tutorialspoint.com/spring_boot/spring_boot_bootstrapping.htm

? ? 本文講解Spring Boot應(yīng)用如何執(zhí)行自啟(?bootstrapping)。
Spring 初始化器(Intializer)
? ? 自啟Spring Boot應(yīng)用的一個(gè)方式是使用Spring 初始化器(Intializer)。使用Spring初始化器,要訪問網(wǎng)頁?www.start.spring.io?選擇所要用到的?Spring Boot 版本和平臺(tái)。還要提供運(yùn)行應(yīng)用的組(Group)、工件(Artifact ) 和所需的依賴等信息。
? ? 下面的截圖展示了添加?spring-boot-starter-web 依賴,編寫?REST 端點(diǎn)的界面:

? ? 輸入組、工件、依賴、構(gòu)件項(xiàng)目、平臺(tái)和版本之后,單擊?Generate Project?按鈕,相應(yīng)的?zip 文件就會(huì)被下載下來并解壓到本地目錄。
? ? 下面講解如何使用 Maven 和 Gradle。
Maven
? ? 在你下載項(xiàng)目、解壓文件之后,pom.xml?文件看起來是這個(gè)樣子的:
<?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.tutorialspoint</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.8.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>
Gradle
? ? 下載項(xiàng)目、解壓文件后,build.gradle?文件看起來是這個(gè)樣子的:
buildscript {
???ext {
??????springBootVersion = '1.5.8.RELEASE'
???}
???repositories {
??????mavenCentral()
???}
???dependencies {
??????classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
???}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
group = 'com.tutorialspoint'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
???mavenCentral()
}
dependencies {
???compile('org.springframework.boot:spring-boot-starter-web')
???testCompile('org.springframework.boot:spring-boot-starter-test')
}
類路徑依賴
? ? Spring Boot提供了一系列?Starters?會(huì)加到你的類路徑中。例如:寫一個(gè) Rest 端點(diǎn),你要在類路徑中加上?spring-boot-starter-web?依賴。代碼如下:
Maven 依賴
<dependencies>
???<dependency>
??????<groupId>org.springframework.boot</groupId>
??????<artifactId>spring-boot-starter-web</artifactId>
???</dependency>
</dependencies>??
Gradle 依賴
dependencies {
? compile('org.springframework.boot:spring-boot-starter-web')
}
主方法
? ? 在 Spring Boot 應(yīng)用類中應(yīng)當(dāng)加入主方法。這個(gè)類要加上?@SpringBootApplication 注解。這是spring boot 應(yīng)用啟動(dòng)的入口點(diǎn)。你可以在默認(rèn)包的?src/java/main?目錄下找到主類文件。
? ? 在這個(gè)例子中,主類文件位于?src/java/main?目錄下,默認(rèn)包名是?com.tutorialspoint.demo。代碼如下:
package com.tutorialspoint.demo;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplicationpublic class DemoApplication {
? ? public static void main(String[] args) {
? ? ? ?SpringApplication.run(DemoApplication.class, args);
? ? }
}
寫一個(gè) Rest 端點(diǎn)(Endpoint)
? ? 要在Spring Boot 應(yīng)用的主類自身的文件中寫一個(gè)簡單的?Hello World Rest 端點(diǎn),要做下面幾步:
首先,在類上面加上?@RestController?注解。
現(xiàn)在,通過?@RequestMapping?注解標(biāo)明請(qǐng)求 URI 方法。
接下來,請(qǐng)求 URI 方法應(yīng)當(dāng)返回?Hello World?字符串.
? ? 現(xiàn)在,主 Spring Boot Application 類文件看起來是這個(gè)樣子:
package com.tutorialspoint.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoApplication {
???public static void main(String[] args) {
??????SpringApplication.run(DemoApplication.class, args);
???}
???@RequestMapping(value = "/")
???public String hello() {
??????return "Hello World";
???}
}
創(chuàng)建可執(zhí)行的 JAR
? ? 讓我們?cè)诿畲翱谟肕aven和Gradle命令創(chuàng)建一個(gè)可執(zhí)行的 JAR 文件來運(yùn)行 Spring Boot 應(yīng)用,如下所示:
? ? 使用 Maven 命令 mvn clean install,如下所示:

? ? 執(zhí)行命令后,你會(huì)看到如下所示的?BUILD SUCCESS?的消息:

? ? 使用 Gradle 命令?gradle clean build,如下所示:

? ? 執(zhí)行命令后,你會(huì)看到?BUILD SUCCESSFUL 的消息,如下所示:

以Java方式運(yùn)行 Hello World
? ? 你可以在下面的目錄下找到所創(chuàng)建的 JAR 文件。
? ? 對(duì)于 Maven,你可以在 target 目錄下找到 JAR 文件,如下所示:

? ? 對(duì)于Gradle,你可以在 build/libs目錄下找到 JAR 文件,如下所示:

? ? 下面,輸入?java –jar <JARFILE> 命令運(yùn)行 JAR 文件。對(duì)于上面的示例,JAR 文件名是?demo-0.0.1-SNAPSHOT.jar

? ? 運(yùn)行 jar 文件,你會(huì)在控制臺(tái)窗口看到相應(yīng)的輸出,如下所示:

? ? 現(xiàn)在,看一下控制臺(tái),Tomcat 啟動(dòng)了,端口是 8080 (http)?,F(xiàn)在打開 web 瀏覽器敲入 URL?http://localhost:8080/?會(huì)看到下面的輸出:
