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

194 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 重启后端服务指南
## 问题确认
后端日志显示执行的 SQL
```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 菜单:`Build``Clean Project`
- 或者:`Build``Rebuild Project`
3. **重新启动服务**
- 点击绿色三角按钮 ▶️ 启动服务
- 等待服务启动完成(看到 "Started Application" 日志)
### 方法2命令行重启
#### Windows PowerShell
```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
```bash
# 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. 验证数据库
```sql
-- 查看该记录
SELECT id, license_plate, is_delete, update_time
FROM vehicle
WHERE id = 3;
-- 预期结果is_delete = 1
```
### 5. 验证前端列表
- ✅ 列表自动刷新
- ✅ 已删除的车辆不再显示
- ✅ 显示"删除成功"提示
## 常见问题
### Q1: 找不到正在运行的服务?
**检查**:
```powershell
# Windows
netstat -ano | findstr :16200
# 查看哪个进程占用了 16200 端口
# 结束进程
taskkill /F /PID <进程ID>
```
### Q2: Maven 编译失败?
**清理并重试**:
```powershell
cd C:\cattleTransport\tradeCattle
mvn clean
mvn compile -DskipTests
```
### Q3: 重启后还是旧代码?
**可能原因**:
1. IDEA 没有自动编译
- 解决:`Build``Rebuild Project`
2. 启动了错误的配置
- 解决:检查 Run Configuration
3. 类加载器缓存
- 解决:完全关闭 IDEA 并重新打开
### Q4: 端口被占用?
```powershell
# 查看占用端口的进程
netstat -ano | findstr :16200
# 结束进程
taskkill /F /PID <进程ID>
```
## 快速重启脚本
### Windows (PowerShell)
创建 `restart-backend.ps1`
```powershell
# 停止后端服务
$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
powershell -ExecutionPolicy Bypass -File restart-backend.ps1
```
## 总结
**关键步骤**
1. 停止后端服务
2. 清理编译缓存(可选)
3. 重新启动服务
4. 验证日志输出
**验证标志**
- 日志显示 `UPDATE vehicle SET is_delete=1`
- 数据库中 `is_delete` 变为 `1`
- 前端列表中记录消失
⚠️ **注意**
- 必须完全停止旧服务
- 确保编译成功
- 验证新代码是否生效