2
快速开始:5 分钟起一个 Web 服务
Quick Start
去 start.spring.io(Spring Initializr)选一下 Maven、Java 21、Spring Boot 3.5.x、加个 Spring Web 依赖,点生成,下载解压,用 IDE 打开,写一个 Controller,跑主类,浏览器访问 localhost:8080。完了。
pom.xml:spring-boot-starter-web 一个依赖顶过去一堆
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<!-- 父工程:负责版本仲裁,子模块不用写版本号 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.4</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<!-- Web 起步依赖:MVC + 内嵌 Tomcat + JSON,一个就够 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 打可执行 jar 的插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
主启动类:就一个 @SpringBootApplication
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// 这个注解是 @Configuration + @EnableAutoConfiguration + @ComponentScan 的合体
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// 启动内嵌 Tomcat,扫描当前包及子包
SpringApplication.run(DemoApplication.class, args);
}
}
第一个 REST 接口
package com.example.demo.web;
import org.springframework.web.bind.annotation.*;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(@RequestParam(name = "name", defaultValue = "世界") String name) {
return "你好," + name + "!Spring Boot 启动成功。";
}
}
浏览器访问 http://localhost:8080/hello?name=豆包
返回:你好,豆包!Spring Boot 启动成功。
三种启动方式
| 方式 | 命令 / 操作 |
|---|---|
| IDE 直接跑 | 在 DemoApplication 上点右键 Run。开发时最常用。 |
| Maven 插件 | mvn spring-boot:run。 |
| 打 jar 后跑 | mvn package 后 java -jar target/demo-0.0.1-SNAPSHOT.jar。 |