Files
cattleTransportation/RESTART_BACKEND_GUIDE.md
2025-10-29 17:33:32 +08:00

4.4 KiB
Raw Blame History

重启后端服务指南

问题确认

后端日志显示执行的 SQL

UPDATE vehicle SET license_plate=?, ..., update_time=?, updated_by=? 
WHERE id=? AND is_delete=0

这是旧代码! 说明后端服务没有重启,还在使用旧的编译版本。

解决步骤

方法1IDEA 重启服务(推荐)

  1. 停止当前运行的服务

    • 在 IDEA 底部找到 "Run" 或 "Services" 窗口
    • 找到正在运行的 Spring Boot 应用
    • 点击红色方块按钮 停止服务
  2. 清理编译缓存(可选但推荐)

    • IDEA 菜单:BuildClean Project
    • 或者:BuildRebuild Project
  3. 重新启动服务

    • 点击绿色三角按钮 ▶️ 启动服务
    • 等待服务启动完成(看到 "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. 测试删除功能

  1. 刷新前端页面Ctrl+F5
  2. 进入"车辆管理"页面
  3. 点击"删除"按钮
  4. 观察后端日志

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: 重启后还是旧代码?

可能原因:

  1. IDEA 没有自动编译
    • 解决:BuildRebuild Project
  2. 启动了错误的配置
    • 解决:检查 Run Configuration
  3. 类加载器缓存
    • 解决:完全关闭 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

总结

关键步骤

  1. 停止后端服务
  2. 清理编译缓存(可选)
  3. 重新启动服务
  4. 验证日志输出

验证标志

  • 日志显示 UPDATE vehicle SET is_delete=1
  • 数据库中 is_delete 变为 1
  • 前端列表中记录消失

⚠️ 注意

  • 必须完全停止旧服务
  • 确保编译成功
  • 验证新代码是否生效