1. Spring Boot 新手避坑指南:三大高频问题深度解析
刚接触Spring Boot的开发者常会遇到一些看似简单却令人抓狂的问题。我在企业级应用开发中带过不少新人团队,发现80%的初级问题都集中在端口占用、依赖冲突和配置失效这三个领域。这些问题往往消耗开发者大量排查时间,但其实都有明确的预防和解决方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 端口占用问题全攻略
2.1 端口冲突的典型表现
当启动应用时看到"Port 8080 already in use"报错,说明默认端口被占用。但实际情况可能更复杂:
- 有时报错显示的是随机端口(如Tomcat的-1自动分配机制失效)
- 在Windows上可能遇到TCP连接处于TIME_WAIT状态导致的假性占用
- 微服务环境下多个实例意外配置了相同端口
2.2 五种解决方案实测
- 修改应用端口(推荐长期方案):
properties复制# application.properties
server.port=8081
# 或者随机端口
server.port=0
- 终止占用进程(临时方案):
bash复制# Linux/Mac
lsof -i :8080 | awk 'NR!=1 {print $2}' | xargs kill -9
# Windows
netstat -ano | findstr 8080
taskkill /PID <pid> /F
- 设置等待时间(适合CI/CD环境):
yaml复制# application.yml
server:
shutdown: graceful
jetty:
connection-idle-timeout: 30s
- 端口复用配置(需要谨慎使用):
java复制@Bean
public TomcatProtocolHandlerCustomizer<?> protocolHandlerCustomizer() {
return protocolHandler -> {
protocolHandler.setPort(8080);
protocolHandler.setAddress(InetAddress.g
