基本完成,修复细节
This commit is contained in:
193
RESTART_BACKEND_GUIDE.md
Normal file
193
RESTART_BACKEND_GUIDE.md
Normal file
@@ -0,0 +1,193 @@
|
||||
# 重启后端服务指南
|
||||
|
||||
## 问题确认
|
||||
后端日志显示执行的 SQL:
|
||||
```sql
|
||||
UPDATE vehicle SET license_plate=?, ..., update_time=?, updated_by=?
|
||||
WHERE id=? AND is_delete=0
|
||||
```
|
||||
|
||||
**这是旧代码!** 说明后端服务没有重启,还在使用旧的编译版本。
|
||||
|
||||
## 解决步骤
|
||||
|
||||
### 方法1:IDEA 重启服务(推荐)
|
||||
|
||||
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`
|
||||
- 前端列表中记录消失
|
||||
|
||||
⚠️ **注意**:
|
||||
- 必须完全停止旧服务
|
||||
- 确保编译成功
|
||||
- 验证新代码是否生效
|
||||
|
||||
Reference in New Issue
Block a user