Skip to content

开发调试常见问题 ​

这里汇总后端本地开发和调试过程中最常碰到的问题,直接找相关场景。

启动相关 ​

Q: 怎么启动后端服务? ​

在 IDEA 中直接运行:

  1. 找到启动类(如 BootAdminApplication)
  2. 点击类名左侧的绿色箭头 ▶,或右键 → Run

TIP

项目已通过 build.gradle.kts 自动注入 JVM 参数和默认 Profile(dev),无需手动配置。

Q: 各微服务的启动类和端口是什么? ​

服务启动类端口
网关BootGatewayApplication7001
认证BootLoginApplication7002
后台管理BootAdminApplication7003
文件存储BootFileStoreApplication7004
Redis 缓存BootRedisApplication7005
MQ 生产者BootMqProviderApplication7006
MQ 消费者BootMqConsumerApplication7007

Q: 端口被占用怎么办? ​

bash
# 查看占用端口的进程(以 7003 为例)
lsof -i :7003

# 杀掉进程
kill -9 <PID>

或修改 application.yml 中的 server.port 配置。

Q: 怎么切换运行环境(dev/uat/prod)? ​

方式一:IDEA 配置

  1. 点击运行配置下拉框 → Edit Configurations...
  2. 找到对应的启动类配置
  3. 在 Active profiles 中输入:dev / uat / prod

方式二:命令行

bash
./gradlew :guava-admin-starter:bootRun --args='--spring.profiles.active=uat'

Nacos 相关 ​

Q: Nacos 配置未生效? ​

按以下顺序排查:

  1. 确认 Nacos 服务可达:ping <nacos-host>
  2. 确认 spring.config.import 格式正确
  3. 确认 Nacos 中存在对应的 dataId
  4. 确认 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: 10000

Q: Feign 调用找不到服务实例? ​

按以下顺序排查:

  1. 确认被调用服务已启动并注册到 Nacos(Nacos 控制台 → 服务列表查看)
  2. 确认调用方和服务方的 spring.cloud.nacos.discovery.server-addr 配置一致
  3. 确认被调用的服务名(@FeignClient 的 name)与 Nacos 中注册的服务名一致
  4. 检查是否配置了正确的 namespace(默认 dev)
  5. 尝试通过 Nacos 控制台手动调用验证服务可用性