前面的准备工作都做完了:环境装好了,项目拉下来了,配置改了,数据库建了。现在终于可以启动项目了。这一节讲SpringBoot项目启动和接口验证。
一、找到启动类
SpringBoot项目有一个主启动类,通常在src/main/java/com/公司名/项目名/目录下。
特征:
- 类名一般叫
XxxApplication,如MyProjectApplication - 有
@SpringBootApplication注解 - 有
main方法
@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):
- 顶部运行配置下拉 → Edit Configurations
- 选中你的Application
- 配置以下内容:
| 配置项 | 说明 | 示例 |
|---|---|---|
| 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和类似输出:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: 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启动
# 在项目根目录执行
mvn spring-boot:run
如果是多模块项目,指定模块:
mvn spring-boot:run -pl admin
2. 打包后启动
# 打包
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请求:
http://localhost:8080/user/list
http://localhost:8080/api/user/list
如果有context-path:
server:
servlet:
context-path: /api
那URL就是:
http://localhost:8080/api/user/list
2. 怎么知道有哪些接口
看代码: 搜索@RestController或@Controller,找到Controller类,看@GetMapping、@PostMapping等注解。
@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/listPOST /user/add
看接口文档: 有些项目用Swagger/Knife4j,启动后访问:
http://localhost:8080/swagger-ui.html
http://localhost:8080/doc.html
能看到所有接口列表,还能在线测试。
3. 用Postman测试接口
GET请求:
- 打开Postman → New Request
- Method选GET
- URL填
http://localhost:8080/user/list - 点Send
POST请求(JSON格式):
- Method选POST
- URL填
http://localhost:8080/user/add - Headers添加:
Content-Type: application/json - Body选raw → JSON,填写:
{
"username": "zhangsan",
"password": "123456",
"email": "zhangsan@test.com"
}
- 点Send
带Token的接口:
很多接口需要登录后才能访问,返回的Token放在请求头里:
- Headers添加:
Authorization: Bearer 你的token - 或在Postman的Authorization标签页选Bearer Token,填入token
4. IDEA内置HTTP客户端
不装Postman也能测接口,IDEA旗舰版自带HTTP客户端。
在项目里创建.http文件:
### 测试用户列表接口
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:端口被占用
Description:
Web server failed to start. Port 8080 was already in use.
解决:
方法1:换端口
server:
port: 8081
方法2:杀掉占用端口的进程
# 查看谁占了8080
netstat -ano | findstr 8080
# 杀掉(替换为实际PID)
taskkill /PID 12345 /F
报错2:数据库连接失败
Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException:
Communications link failure
排查:
- MySQL服务是否启动:
net start | findstr MySQL - 配置文件里的地址、端口、用户名、密码是否正确
- 数据库是否创建:
SHOW DATABASES; - MySQL 8.x连接URL是否加了
allowPublicKeyRetrieval=true
报错3:Redis连接失败
Caused by: redis.clients.jedis.exceptions.JedisConnectionException:
Could not get a resource from the pool
或:
Unable to connect to Redis
排查:
- Redis是否启动:
redis-cli ping - 密码是否正确
- 端口是否正确
- 如果Redis没设密码但配置文件里写了password,去掉password配置
报错4:Bean创建失败
Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'xxx'
原因很多,看Caused by往下找:
NoSuchBeanDefinitionException→ 某个Bean没注入,检查@Component、@Service等注解UnsatisfiedDependencyException→ 依赖注入失败,检查构造方法或@AutowiredIllegalArgumentException→ 参数不对,可能是配置缺失
报错5:找不到配置文件
The following profiles are active: local
但提示找不到application-local.yml。
解决: 确认src/main/resources/下有这个文件,文件名拼写正确。
报错6:Nacos连接失败
Caused by: com.alibaba.nacos.api.exception.NacosException:
caused by java.net.ConnectException: Connection refused
解决: 本地装Nacos或者改配置不用Nacos。
Nacos下载:https://github.com/alibaba/nacos/releases
启动:
# Windows单机模式
startup.cmd -m standalone
默认端口8848,启动后访问:http://localhost:8848/nacos (账号密码都是nacos)
报错7:ClassNotFound
java.lang.ClassNotFoundException: com.xxx.XxxClass
某个类找不到。
排查:
- Maven依赖是否完整:
mvn clean install - IDEA是否正确加载了依赖
- 如果是公司内部的类,确认公司私服配了
六、启动日志怎么看
启动日志从头看到尾,按这个顺序找问题:
1. Banner之后的信息
Starting MyProjectApplication v1.0.0 on DESKTOP-ABC with PID 12345
确认应用名和PID。
2. Profile信息
The following profiles are active: local
确认用了正确的环境配置。
3. 数据源信息
HikariPool-1 - Pool stats (total=10, active=0, idle=10, waiting=0)
数据源初始化成功。如果这里报错,数据库连接有问题。
4. Tomcat信息
Tomcat initialized with port(s): 8080 (http)
端口绑定成功。如果端口被占用,这里会报错。
5. 路由映射
Mapped "{[/user/list],methods=[GET]}" onto public ...
Mapped "{[/user/add],methods=[POST]}" onto public ...
接口路由注册成功。
6. 启动完成
Started MyProjectApplication in 3.234 seconds (JVM running for 4.567)
看到这行就说明启动成功了。
7. 如果日志太多看不到关键信息
在IDEA的控制台搜索框输入关键词:ERROR、Caused by、Exception。
或者调高日志级别,只看关键信息:
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项目。