💜 想真正擅长编程? 从一门课程开始,100% 免费

2-5、SpringBoot项目启动与接口访问

前面的准备工作都做完了:环境装好了,项目拉下来了,配置改了,数据库建了。现在终于可以启动项目了。这一节讲SpringBoot项目启动和接口验证。


一、找到启动类

SpringBoot项目有一个主启动类,通常在src/main/java/com/公司名/项目名/目录下。

特征:

  • 类名一般叫XxxApplication,如MyProjectApplication
  • 有@SpringBootApplication注解
  • 有main方法
Java
@SpringBootApplication
public class MyProjectApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyProjectApplication.class, args);
    }
}

多模块项目可能有多个启动类,问清楚你要启动哪个模块。一般是admin模块或api模块。


二、IDEA启动项目

1. 直接运行

在IDEA里找到启动类,右键 → Run 'XxxApplication'。

或者打开启动类,点main方法旁边的绿色三角形。

2. 配置启动参数

如果需要传参数(比如指定profile):

  1. 顶部运行配置下拉 → Edit Configurations
  2. 选中你的Application
  3. 配置以下内容:
配置项 说明 示例
Main class 启动类全路径 com.company.project.MyProjectApplication
Program arguments 启动参数 --spring.profiles.active=local
VM options JVM参数 -Xms256m -Xmx1024m -Dfile.encoding=UTF-8
Environment variables 环境变量 SPRING_PROFILES_ACTIVE=local
Working directory 工作目录 默认即可

3. 启动成功标志

控制台看到SpringBoot的banner和类似输出:

TEXT
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.7.18)

2026-01-01 10:00:00.000  INFO  --- Starting MyProjectApplication on PC-001
2026-01-01 10:00:01.234  INFO  --- Tomcat initialized with port(s): 8080 (http)
2026-01-01 10:00:02.567  INFO  --- Started MyProjectApplication in 3.234 seconds

最后一行"Started XxxApplication in x seconds"就是启动成功的标志。

4. 启动失败

如果控制台报了一大堆红色错误,别慌,看最后的Caused by部分。


三、命令行启动

不用IDEA也可以用命令行启动:

1. Maven启动

Shell
# 在项目根目录执行
mvn spring-boot:run

如果是多模块项目,指定模块:

Shell
mvn spring-boot:run -pl admin

2. 打包后启动

Shell
# 打包
mvn clean package -DskipTests

# 运行jar包
java -jar target/my-project-1.0.0.jar

# 指定profile
java -jar target/my-project-1.0.0.jar --spring.profiles.active=local

3. 停止

IDEA里点红色停止按钮。命令行按Ctrl+C。


四、访问接口

项目启动后,Tomcat监听8080端口(或你配置的端口),可以访问接口了。

1. 浏览器直接访问

最简单的方式,适合GET请求:

TEXT
http://localhost:8080/user/list
http://localhost:8080/api/user/list

如果有context-path:

YAML
server:
  servlet:
    context-path: /api

那URL就是:

TEXT
http://localhost:8080/api/user/list

2. 怎么知道有哪些接口

看代码: 搜索@RestController或@Controller,找到Controller类,看@GetMapping、@PostMapping等注解。

Java
@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping("/list")
    public List<User> list() {
        return userService.list();
    }

    @PostMapping("/add")
    public Result add(@RequestBody UserDTO dto) {
        return userService.add(dto);
    }
}

这个Controller有两个接口:

  • GET /user/list
  • POST /user/add

看接口文档: 有些项目用Swagger/Knife4j,启动后访问:

TEXT
http://localhost:8080/swagger-ui.html
http://localhost:8080/doc.html

能看到所有接口列表,还能在线测试。

3. 用Postman测试接口

GET请求:

  1. 打开Postman → New Request
  2. Method选GET
  3. URL填http://localhost:8080/user/list
  4. 点Send

POST请求(JSON格式):

  1. Method选POST
  2. URL填http://localhost:8080/user/add
  3. Headers添加:Content-Type: application/json
  4. Body选raw → JSON,填写:
JSON
{
  "username": "zhangsan",
  "password": "123456",
  "email": "zhangsan@test.com"
}
  1. 点Send

带Token的接口:

很多接口需要登录后才能访问,返回的Token放在请求头里:

  1. Headers添加:Authorization: Bearer 你的token
  2. 或在Postman的Authorization标签页选Bearer Token,填入token

4. IDEA内置HTTP客户端

不装Postman也能测接口,IDEA旗舰版自带HTTP客户端。

在项目里创建.http文件:

TEXT
### 测试用户列表接口
GET http://localhost:8080/user/list
Accept: application/json

### 测试新增用户
POST http://localhost:8080/user/add
Content-Type: application/json

{
  "username": "zhangsan",
  "password": "123456"
}

### 带Token的接口
GET http://localhost:8080/user/info
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.xxx

每个请求上面有个绿色运行按钮,点击发送请求,结果在下方显示。


五、常见启动报错及解决

报错1:端口被占用

TEXT
Description:
Web server failed to start. Port 8080 was already in use.

解决:

方法1:换端口

YAML
server:
  port: 8081

方法2:杀掉占用端口的进程

Shell
# 查看谁占了8080
netstat -ano | findstr 8080

# 杀掉(替换为实际PID)
taskkill /PID 12345 /F

报错2:数据库连接失败

TEXT
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException:
Communications link failure

排查:

  1. MySQL服务是否启动:net start | findstr MySQL
  2. 配置文件里的地址、端口、用户名、密码是否正确
  3. 数据库是否创建:SHOW DATABASES;
  4. MySQL 8.x连接URL是否加了allowPublicKeyRetrieval=true

报错3:Redis连接失败

TEXT
Caused by: redis.clients.jedis.exceptions.JedisConnectionException:
Could not get a resource from the pool

或:

TEXT
Unable to connect to Redis

排查:

  1. Redis是否启动:redis-cli ping
  2. 密码是否正确
  3. 端口是否正确
  4. 如果Redis没设密码但配置文件里写了password,去掉password配置

报错4:Bean创建失败

TEXT
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'xxx'

原因很多,看Caused by往下找:

  • NoSuchBeanDefinitionException → 某个Bean没注入,检查@Component、@Service等注解
  • UnsatisfiedDependencyException → 依赖注入失败,检查构造方法或@Autowired
  • IllegalArgumentException → 参数不对,可能是配置缺失

报错5:找不到配置文件

TEXT
The following profiles are active: local

但提示找不到application-local.yml。

解决: 确认src/main/resources/下有这个文件,文件名拼写正确。

报错6:Nacos连接失败

TEXT
Caused by: com.alibaba.nacos.api.exception.NacosException:
caused by java.net.ConnectException: Connection refused

解决: 本地装Nacos或者改配置不用Nacos。

Nacos下载:https://github.com/alibaba/nacos/releases

启动:

Shell
# Windows单机模式
startup.cmd -m standalone

默认端口8848,启动后访问:http://localhost:8848/nacos (账号密码都是nacos)

报错7:ClassNotFound

TEXT
java.lang.ClassNotFoundException: com.xxx.XxxClass

某个类找不到。

排查:

  1. Maven依赖是否完整:mvn clean install
  2. IDEA是否正确加载了依赖
  3. 如果是公司内部的类,确认公司私服配了

六、启动日志怎么看

启动日志从头看到尾,按这个顺序找问题:

1. Banner之后的信息

TEXT
Starting MyProjectApplication v1.0.0 on DESKTOP-ABC with PID 12345

确认应用名和PID。

2. Profile信息

TEXT
The following profiles are active: local

确认用了正确的环境配置。

3. 数据源信息

TEXT
HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)

数据源初始化成功。如果这里报错,数据库连接有问题。

4. Tomcat信息

TEXT
Tomcat initialized with port(s): 8080 (http)

端口绑定成功。如果端口被占用,这里会报错。

5. 路由映射

TEXT
Mapped "{[/user/list],methods=[GET]}" onto public ...
Mapped "{[/user/add],methods=[POST]}" onto public ...

接口路由注册成功。

6. 启动完成

TEXT
Started MyProjectApplication in 3.234 seconds (JVM running for 4.567)

看到这行就说明启动成功了。

7. 如果日志太多看不到关键信息

在IDEA的控制台搜索框输入关键词:ERROR、Caused by、Exception。

或者调高日志级别,只看关键信息:

YAML
logging:
  level:
    root: ERROR
    org.springframework: WARN
    com.yourcompany: INFO

七、启动后的验证清单

检查项 方法 预期结果
项目启动 看控制台 "Started in x seconds"
端口监听 `netstat -ano findstr 8080`
健康检查 访问/actuator/health(如果开启了) {"status":"UP"}
接口可访问 访问一个GET接口 返回JSON数据
Swagger页面 访问/swagger-ui.html或/doc.html 能看到接口列表
日志文件 查看logs/目录 有日志文件产生

小结

步骤 关键点
找启动类 @SpringBootApplication注解的类
配置启动参数 指定profile、JVM参数
启动验证 "Started in x seconds"
接口测试 浏览器/Postman/IDEA HTTP Client
日志排错 搜ERROR和Caused by

后端跑起来了,下一步启动前端Vue项目。