4.4 KiB
4.4 KiB
重启后端服务指南
问题确认
后端日志显示执行的 SQL:
UPDATE vehicle SET license_plate=?, ..., update_time=?, updated_by=?
WHERE id=? AND is_delete=0
这是旧代码! 说明后端服务没有重启,还在使用旧的编译版本。
解决步骤
方法1:IDEA 重启服务(推荐)
-
停止当前运行的服务
- 在 IDEA 底部找到 "Run" 或 "Services" 窗口
- 找到正在运行的 Spring Boot 应用
- 点击红色方块按钮 ⬛ 停止服务
-
清理编译缓存(可选但推荐)
- IDEA 菜单:
Build→Clean Project - 或者:
Build→Rebuild Project
- IDEA 菜单:
-
重新启动服务
- 点击绿色三角按钮 ▶️ 启动服务
- 等待服务启动完成(看到 "Started Application" 日志)
方法2:命令行重启
Windows PowerShell
# 1. 停止后端服务(找到 Java 进程并结束)
tasklist | findstr java
# 记下 PID,例如 21056
# 2. 结束进程
taskkill /F /PID 21056
# 3. 清理并重新编译
cd C:\cattleTransport\tradeCattle
mvn clean package -DskipTests
# 4. 重新启动服务
cd aiotagro-cattle-trade
java -jar target\aiotagro-cattletrade-1.0.1.jar
Linux/Mac
# 1. 找到并停止 Java 进程
ps aux | grep java
kill -9 <PID>
# 2. 清理并重新编译
cd /path/to/tradeCattle
mvn clean package -DskipTests
# 3. 重新启动服务
cd aiotagro-cattle-trade
java -jar target/aiotagro-cattletrade-1.0.1.jar
方法3:使用 Spring Boot DevTools(如果已配置)
如果项目配置了 Spring Boot DevTools:
- 保存文件后会自动重启
- 但完全替换方法时,建议手动重启
验证步骤
1. 检查后端日志
重启后,后端应该显示新的启动日志:
Started Application in X.XXX seconds
2. 测试删除功能
- 刷新前端页面(Ctrl+F5)
- 进入"车辆管理"页面
- 点击"删除"按钮
- 观察后端日志
3. 期望的日志输出
新代码应该显示:
[VEHICLE-DELETE] 开始逻辑删除车辆,ID: 3
[VEHICLE-DELETE] 车辆信息 - 车牌号: 鄂A 66662, 当前 is_delete: 0
UPDATE vehicle SET is_delete=1 WHERE id=3
[VEHICLE-DELETE] ✅ 逻辑删除成功,车牌号: 鄂A 66662, 操作人ID: 11
关键点:
- ✅ SQL 中只有
SET is_delete=1 - ✅ 没有更新
license_plate,car_front_photo等其他字段 - ✅ 日志显示
[VEHICLE-DELETE]标签
4. 验证数据库
-- 查看该记录
SELECT id, license_plate, is_delete, update_time
FROM vehicle
WHERE id = 3;
-- 预期结果:is_delete = 1
5. 验证前端列表
- ✅ 列表自动刷新
- ✅ 已删除的车辆不再显示
- ✅ 显示"删除成功"提示
常见问题
Q1: 找不到正在运行的服务?
检查:
# Windows
netstat -ano | findstr :16200
# 查看哪个进程占用了 16200 端口
# 结束进程
taskkill /F /PID <进程ID>
Q2: Maven 编译失败?
清理并重试:
cd C:\cattleTransport\tradeCattle
mvn clean
mvn compile -DskipTests
Q3: 重启后还是旧代码?
可能原因:
- IDEA 没有自动编译
- 解决:
Build→Rebuild Project
- 解决:
- 启动了错误的配置
- 解决:检查 Run Configuration
- 类加载器缓存
- 解决:完全关闭 IDEA 并重新打开
Q4: 端口被占用?
# 查看占用端口的进程
netstat -ano | findstr :16200
# 结束进程
taskkill /F /PID <进程ID>
快速重启脚本
Windows (PowerShell)
创建 restart-backend.ps1:
# 停止后端服务
$process = Get-Process | Where-Object {$_.ProcessName -eq "java" -and $_.MainWindowTitle -like "*cattletrade*"}
if ($process) {
Stop-Process -Id $process.Id -Force
Write-Host "已停止后端服务"
}
# 重新编译
cd C:\cattleTransport\tradeCattle
mvn clean compile -DskipTests
# 重新启动(在 IDEA 中手动启动)
Write-Host "编译完成,请在 IDEA 中重新启动服务"
运行:
powershell -ExecutionPolicy Bypass -File restart-backend.ps1
总结
✅ 关键步骤:
- 停止后端服务
- 清理编译缓存(可选)
- 重新启动服务
- 验证日志输出
✅ 验证标志:
- 日志显示
UPDATE vehicle SET is_delete=1 - 数据库中
is_delete变为1 - 前端列表中记录消失
⚠️ 注意:
- 必须完全停止旧服务
- 确保编译成功
- 验证新代码是否生效