記錄一次成功的springBoot
開發您的第一個 Spring Boot 應用程序
本節介紹如何開發一個小型的“Hello World!” Web 應用程序,該應用程序突出顯示了 Spring Boot 的一些關鍵功能。 您可以選擇 Maven 或 Gradle 作為構建系統。
|
您可以通過轉到 start.spring.io 并從依賴項搜索器中選擇“Web”啟動器來快捷執行以下步驟。 這樣做會生成一個新的項目結構,以便您可以立即開始編碼。 有關詳細信息,請查看 start.spring.io 用戶指南。 |
先決條件
在開始之前,請打開終端并運行以下命令以確保您安裝了有效版本的 Java:
$ java -version
openjdk version "17.0.16" 2025-07-15 LTS
OpenJDK Runtime Environment (build 17.0.16+12-LTS)
OpenJDK 64-Bit Server VM (build 17.0.16+12-LTS, mixed mode, sharing)
| 此示例需要在其自己的目錄中創建。 后續說明假定您已經創建了一個合適的目錄,并且它是您當前的目錄。 |
專家
如果要使用 Maven,請確保已安裝 Maven:
$ mvn -v
Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
Maven home: /Users/developer/.sdkman/candidates/maven/current
Java version: 17.0.16, vendor: BellSoft, runtime: /Users/developer/.sdkman/candidates/java/17.0.16-librca
Gradle
如果您想使用 Gradle,請確保您已安裝 Gradle:
$ gradle --version
------------------------------------------------------------
Gradle 8.14.3
------------------------------------------------------------
Build time: 2025-07-04 13:15:44 UTC
Revision: e5ee1df3d88b8ca3a8074787a94f373e3090e1db
Kotlin: 2.0.21
Groovy: 3.0.24
Ant: Apache Ant(TM) version 1.10.15 compiled on August 25 2024
Launcher JVM: 17.0.16 (BellSoft 17.0.16+12-LTS)
Daemon JVM: /Users/developer/.sdkman/candidates/java/17.0.16-librca (no JDK specified, using current Java home)
OS: Mac OS X 15.7.1 aarch64
使用 Maven 設置項目
我們需要從創建一個 Maven 文件開始。 是用于構建項目的配方。 打開您最喜歡的文本編輯器并添加以下內容:pom.xmlpom.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 https://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>3.5.7</version>
</parent>
<!-- Additional lines to be added here... -->
</project>
前面的列表應該會給你一個有效的構建。
您可以通過運行來測試它(現在,您可以忽略“jar 將為空 - 沒有內容被標記為包含!mvn package
| 此時,您可以將項目導入到 IDE 中(大多數現代 Java IDE 都包含對 Maven 的內置支持)。 為簡單起見,我們在此示例中繼續使用純文本編輯器。 |
使用 Gradle 設置項目
我們需要從創建一個 Gradle 文件開始。 是用于構建項目的生成腳本。 打開您最喜歡的文本編輯器并添加以下內容:build.gradlebuild.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.7'
}
apply plugin: 'io.spring.dependency-management'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
}
前面的列表應該會給你一個有效的構建。 您可以通過運行 來測試它。gradle classes
| 此時,您可以將項目導入 IDE(大多數現代 Java IDE 都包含對 Gradle 的內置支持)。 為簡單起見,我們在此示例中繼續使用純文本編輯器。 |
添加類路徑依賴項
Spring Boot 提供了許多啟動器,可讓您將 jar 添加到類路徑中。 啟動器提供了在開發特定類型的應用程序時可能需要的依賴項。
專家
大多數 Spring Boot 應用程序在 POM 的部分中使用 這是一個特殊的啟動器,提供有用的 Maven 默認值。 它還提供了一個依賴項管理部分,以便您可以省略“祝福”依賴項的標簽。spring-boot-starter-parentparentspring-boot-starter-parentversion
由于我們正在開發一個 Web 應用程序,因此我們添加了一個依賴項。 在此之前,我們可以通過運行以下命令來查看我們當前擁有的內容:spring-boot-starter-web
$ mvn dependency:tree
[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT
該命令打印項目依賴項的樹表示形式。 您可以看到它本身不提供任何依賴項。 要添加必要的依賴項,請編輯 ur 并在該部分下方添加依賴項:mvn dependency:treespring-boot-starter-parentpom.xmlspring-boot-starter-webparent
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
如果您再次運行,您會看到現在有許多額外的依賴項,包括 Tomcat Web 服務器和 Spring Boot 本身。mvn dependency:tree
Gradle
大多數 Spring Boot 應用程序都使用 Gradle 插件。 此插件提供了有用的默認值和 Gradle 任務。 Gradle 插件提供依賴項管理,以便您可以省略“祝福”依賴項的標記。org.springframework.bootio.spring.dependency-managementversion
由于我們正在開發一個 Web 應用程序,因此我們添加了一個依賴項。 在此之前,我們可以通過運行以下命令來查看我們當前擁有的內容:spring-boot-starter-web
$ gradle dependencies
> Task :dependencies
------------------------------------------------------------
Root project 'myproject'
------------------------------------------------------------
該命令打印項目依賴項的樹表示形式。 目前,該項目沒有依賴項。 要添加必要的依賴項,請在以下部分中編輯 并添加依賴項:gradle dependenciesbuild.gradlespring-boot-starter-webdependencies
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
如果您再次運行,您會看到現在有許多額外的依賴項,包括 Tomcat Web 服務器和 Spring Boot 本身。gradle dependencies
編寫代碼
要完成我們的應用程序,我們需要創建一個 Java 文件。 默認情況下,Maven 和 Gradle 從 編譯源代碼,因此您需要創建該目錄結構,然后添加一個名為包含以下代碼的文件:src/main/javasrc/main/java/com/example/MyApplication.java
-
爪哇島
-
科特林
package com.example;
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;
@RestController
@SpringBootApplication
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
雖然這里沒有太多代碼,但正在發生很多事情。 我們將在接下來的幾節中逐步介紹重要部分。
@RestController和@RequestMapping注釋
我們類的第一個注釋是 @RestController。 這稱為構造型注釋。 它為閱讀代碼的人和 Spring 提供了類扮演特定角色的提示。 在這種情況下,我們的類是一個 Web @Controller,因此 Spring 在處理傳入的 Web 請求時會考慮它。MyApplication
@RequestMapping注釋提供“路由”信息。 它告訴 Spring 任何具有路徑的 HTTP 請求都應映射到該方法。 @RestController Comments 告訴 Spring 將生成的字符串直接呈現回調用者。/home
@RestController 和 @RequestMapping 注釋是 Spring MVC 注釋(它們不是特定于 Spring Boot 的)。 有關更多詳細信息,請參閱 Spring 參考文檔中的 MVC 部分。 |
@SpringBootApplication注釋
第二個類級注解是@SpringBootApplication。這個注解被稱為元注解,它結合了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。
其中,我們在這里最感興趣的注釋是 @EnableAutoConfiguration。@EnableAutoConfiguration 告訴 Spring Boot 根據您添加的 jar 依賴項“猜測”您想要如何配置 Spring。由于添加了 Tomcat 和 Spring MVC,自動配置假設您正在開發一個 Web 應用程序并相應地設置 Spring。spring-boot-starter-web
“主要”方法
我們應用程序的最后一部分是方法。這是一個遵循應用程序入口點的 Java 約定的標準方法。我們的 main 方法通過調用 委托給 Spring Boot 的 SpringApplication 類。SpringApplication 引導我們的應用程序,啟動 Spring,而 Spring 又啟動自動配置的 Tomcat Web 服務器。我們需要作為參數傳遞給該方法,以告訴 SpringApplication 哪個是主要 Spring 組件。該數組也被傳遞以公開任何命令行參數。mainrunMyApplication.classrunargs
運行示例
專家
此時,您的應用程序應該可以工作。 由于您使用了 POM,因此您有一個有用的目標,可用于啟動應用程序。 從根項目目錄鍵入以啟動應用程序。 您應該會看到類似于以下內容的輸出:spring-boot-starter-parentrunmvn spring-boot:run
$ mvn spring-boot:run
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.5.7)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.906 seconds (process running for 6.514)
如果打開 Web 瀏覽器 ,您應該會看到以下輸出:localhost:8080
Hello World!
要正常退出應用程序,請按 。ctrl-c
Gradle
此時,您的應用程序應該可以工作。 由于您使用了 Gradle 插件,因此您有一個有用的目標,可用于啟動應用程序。 從根項目目錄鍵入以啟動應用程序。 您應該會看到類似于以下內容的輸出:org.springframework.bootbootRungradle bootRun
$ gradle bootRun
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.5.7)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.906 seconds (process running for 6.514)
如果打開 Web 瀏覽器 ,您應該會看到以下輸出:localhost:8080
Hello World!
要正常退出應用程序,請按 。ctrl-c
創建可執行 Jar
我們通過創建一個完全獨立的可執行 jar 文件來完成我們的示例,我們可以在生產中運行該文件。可執行 jar(有時稱為“uber jars”或“fat jar”)是包含已編譯類以及代碼運行所需的所有 jar 依賴項的存檔。
專家
要創建一個可執行的 jar,我們需要將 添加到我們的 . 為此,請在該部分下方插入以下行:spring-boot-maven-pluginpom.xmldependencies
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
POM 包括綁定目標的配置。 如果您不使用父 POM,則需要自己聲明此配置。 有關詳細信息,請參閱插件文檔。spring-boot-starter-parent<executions>repackage |
保存并從命令行運行,如下所示:pom.xmlmvn 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:3.5.7:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
如果您查看目錄,您應該會看到 。 該文件的大小應約為 18 MB。 如果你想偷看里面,你可以使用 ,如下所示:targetmyproject-0.0.1-SNAPSHOT.jarjar tvf
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
您還應該看到目錄中命名的一個小得多的文件。 這是 Maven 在被 Spring Boot 重新打包之前創建的原始 jar 文件。myproject-0.0.1-SNAPSHOT.jar.originaltarget
要運行該應用程序,請使用以下命令,如下所示:java -jar
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.5.7)
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.999 seconds (process running for 1.253)
和以前一樣,要退出應用程序,請按 。ctrl-c
Gradle
要創建一個可執行的 jar,我們需要從命令行運行,如下所示:gradle bootJar
$ gradle bootJar
BUILD SUCCESSFUL in 639ms
3 actionable tasks: 3 executed
如果您查看目錄,您應該會看到 。 該文件的大小應約為 18 MB。 如果你想偷看里面,你可以使用 ,如下所示:build/libsmyproject-0.0.1-SNAPSHOT.jarjar tvf
$ jar tvf build/libs/myproject-0.0.1-SNAPSHOT.jar
要運行該應用程序,請使用以下命令,如下所示:java -jar
$ java -jar build/libs/myproject-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v{version-spring-boot})
....... . . .
....... . . . (log output here)
....... . . .
........ Started MyApplication in 0.999 seconds (process running for 1.253)
和以前一樣,要退出應用程序,請按 。ctrl-c

浙公網安備 33010602011771號