Spring Boot 2.0 系列(一):快速開始

寫在前面

1. 介紹SpringBoot

Spring Boot可以使我們輕松地創(chuàng)建獨立的、生產(chǎn)級的基于Spring的應用程序,由于整合了一些對Spring和第三方庫的配置,我們可以快速開始一個應用程序。大多數(shù)Spring Boot應用程序都需要很少的Spring配置。

我們可以使用Spring Boot來創(chuàng)建Java應用程序,這些應用程序可以通過使用 java -jar 或更傳統(tǒng)的war部署來啟動。Spring Boot還提供了一個運行“spring腳本”的命令行工具。

Spring Boot 為我們都做了什么:

  • 為所有Spring開發(fā)人員提供一種快速而廣泛的入門體驗。

  • 由于整合了一些對Spring和第三方庫的配置解決了深受XML配置困擾的Spring開發(fā)人員的痛點

  • 提供一系列非功能特性,這些特性在大型項目中是常見的(例如嵌入式服務器、安全、度量、健康檢查和外部化配置)。

2.系統(tǒng)環(huán)境需求

  • Java 8 或 9

  • Spring 5.0.6 RELEASE 或 以上

  • 構建工具

    • Maven 3.2 +
    • Gradle 4
  • Spring Boot支持以下servlet容器:

    • Tomcat 8.5
    • Jetty 9.4
    • Undertow 1.4

3. 構建項目的方式

1.基于Maven的構建
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>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
    </parent>

    <!-- Add typical dependencies for a web application -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <!-- Package as an executable jar -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.基于Gradle的構建
bulid.gradle 內容如下:

plugins {
    id 'org.springframework.boot' version '2.0.2.RELEASE'
    id 'java'
}

jar {
    baseName = 'myproject'
    version =  '0.0.1-SNAPSHOT'
}

repositories {
    jcenter()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

4.開發(fā)Spring Boot 的Hello World 項目(使用maven構建工具)

</br>

第一步: 創(chuàng)建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>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
    </parent>

    <!-- Additional lines to be added here... -->

</project>

第二步:添加依賴

Spring Boot提供了許多“starter”,可以讓您將jar添加到classpath 中。上文已經(jīng)在POM的父部分使用了spring-boot-starter-parent。spring-boot-starter-parent是一個特殊的“starter”,它提供有用的Maven默認值。它還提供了一個依賴管理部分,這樣我們就就可以為關聯(lián)的依賴項省略版本標記。
其他"starter"提供了在開發(fā)特定類型的應用程序時可能需要的依賴項。由于我們正在開發(fā)一個web應用程序,所以我們添加了一個spring-boot-starter-web依賴項。在此之前,我們可以通過運行以下命令查看當前所擁有的內容。

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

第三步:編寫代碼

要完成我們的應用程序,我們需要創(chuàng)建一個Java文件,Java文件包含以下代碼:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

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

}

注:

在我們的示例類上的第一個注釋是@RestController。這被稱為構造型注釋。它為閱讀代碼的人們提供了一些提示,并且為Spring提供了一個特定的角色。在本例中,我們的類是一個web @Controller,所以Spring在處理傳入web請求時考慮它。@RequestMapping注釋提供路由信息。它告訴Spring,任何帶有/ path的HTTP請求都應該映射到home方法。@RestController注釋告訴Spring將生成的字符串直接呈現(xiàn)給調用者。

第二個類級別注釋是@EnableAutoConfiguration。這個注釋告訴Spring Boot基于您添加的jar依賴項“猜測”您想如何配置Spring,。因為Spring-boot-starter-web添加了Tomcat和Spring MVC,所以自動配置假設您正在開發(fā)一個web應用程序,并相應地設置Spring。

我們的應用程序的最后一部分是主方法。這只是遵循應用程序入口點的Java約定的標準方法。通過調用run,我們的main方法委托給Spring Boot的SpringApplication類。SpringApplication引導我們的應用程序啟動Spring,而Spring又啟動了自動配置的Tomcat web服務器。我們需要通過例子。類作為運行方法的參數(shù),以告訴SpringApplication是主Spring組件。args數(shù)組也被傳遞,以公開任何命令行參數(shù)。

第四步:運行程序:

運行main方法,或者在根目錄運行 mvn spring-boot: run命令。

$ mvn spring-boot:run

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.0.2.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)

打開瀏覽器,輸入localhost:8080,你可以看到

Hello World!

第五步:創(chuàng)建可執(zhí)行的jar

將下列代碼添加到pom.xml文件中:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

保存文件,并在命令行輸入maven package,可以看到:

$ mvn package

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.0.2.RELEASE:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

這時你會發(fā)現(xiàn)target目錄下多了一個名為myprojectname-0.0.1-SNAPSHOT.jar的文件,文件大概10MB,如果你想查看文件的詳細內容,可以使用

$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar

如果你想運行,可以使用 java -jar,如下:

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v2.0.2.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)

若知后事如何,且聽下回分解~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容