开发调试常见问题
这里汇总后端本地开发和调试过程中最常碰到的问题,直接找相关场景。
启动相关
Q: 怎么启动后端服务?
在 IDEA 中直接运行:
- 找到启动类(如
BootAdminApplication) - 点击类名左侧的绿色箭头 ▶,或右键 → Run
TIP
项目已通过 build.gradle.kts 自动注入 JVM 参数和默认 Profile(dev),无需手动配置。
Q: 各微服务的启动类和端口是什么?
| 服务 | 启动类 | 端口 |
|---|---|---|
| 网关 | BootGatewayApplication | 7001 |
| 认证 | BootLoginApplication | 7002 |
| 后台管理 | BootAdminApplication | 7003 |
| 文件存储 | BootFileStoreApplication | 7004 |
| Redis 缓存 | BootRedisApplication | 7005 |
| MQ 生产者 | BootMqProviderApplication | 7006 |
| MQ 消费者 | BootMqConsumerApplication | 7007 |
Q: 端口被占用怎么办?
bash
# 查看占用端口的进程(以 7003 为例)
lsof -i :7003
# 杀掉进程
kill -9 <PID>或修改 application.yml 中的 server.port 配置。
Q: 怎么切换运行环境(dev/uat/prod)?
方式一:IDEA 配置
- 点击运行配置下拉框 → Edit Configurations...
- 找到对应的启动类配置
- 在 Active profiles 中输入:
dev/uat/prod
方式二:命令行
bash
./gradlew :guava-admin-starter:bootRun --args='--spring.profiles.active=uat'Nacos 相关
Q: Nacos 配置未生效?
按以下顺序排查:
- 确认 Nacos 服务可达:
ping <nacos-host> - 确认
spring.config.import格式正确 - 确认 Nacos 中存在对应的 dataId
- 确认 namespace 和 group 配置与 Nacos 控制台一致
Q: 怎么查看 Nacos 中加载的配置?
启动日志中会打印从 Nacos 加载的配置信息,搜索关键字 Loading nacos data。
MyBatis 相关
Q: MyBatis Mapper 找不到?
确认启动类有 @MapperScan 注解:
java
@MapperScan("com.guava.admin.repository")
public class BootAdminApplication { ... }Q: 怎么打印 MyBatis 执行的 SQL?
在 application-dev.yml 中添加:
yaml
logging:
level:
com.guava.admin.repository: debug服务间调用相关
Q: Feign 调用超时怎么办?
调整 Feign 超时配置:
yaml
spring:
cloud:
openfeign:
client:
config:
default:
connect-timeout: 5000
read-timeout: 10000Q: Feign 调用找不到服务实例?
按以下顺序排查:
- 确认被调用服务已启动并注册到 Nacos(Nacos 控制台 → 服务列表查看)
- 确认调用方和服务方的
spring.cloud.nacos.discovery.server-addr配置一致 - 确认被调用的服务名(
@FeignClient的name)与 Nacos 中注册的服务名一致 - 检查是否配置了正确的 namespace(默认
dev) - 尝试通过 Nacos 控制台手动调用验证服务可用性