You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swagger2未检测到后端代码变更的问题求助

依赖
  • springfox-swagger2: 2.9.2
  • swagger-bootstrap-ui: 1.9.6
问题描述

修改后端代码后,Swagger2 API文档仍显示旧的接口信息,已尝试执行clean and install命令、清除浏览器缓存、重新导入项目等操作,但都没有效果。

解决办法

  1. 排查Swagger配置的缓存设置
    检查项目中的Swagger配置类,确认是否给Docket实例添加了缓存控制相关配置。如果有,移除缓存设置,确保接口文档实时生成:
@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.your.project.controller"))
            .paths(PathSelectors.any())
            .build()
            .useDefaultResponseMessages(false);
    // 确保没有类似 .cacheControl(CacheControl.maxAge(3600, TimeUnit.SECONDS)) 的配置
}
  1. 彻底重启应用服务器
    不要依赖热部署工具,直接停止并重启整个应用服务器。部分情况下,热部署可能没有正确加载修改后的类文件,重启能确保新代码完全生效。

  2. 检查编译产物是否更新
    进入项目的target(Maven)或build(Gradle)目录,找到修改后的Controller对应的class文件,查看编译时间是否为最新。如果class文件未更新,说明clean and install执行失败,查看构建日志排查编译错误。

  3. 验证API接口的原始数据
    直接访问后端的/v2/api-docs接口,查看返回的JSON数据是否是最新的。如果这里还是旧数据,问题出在后端生成逻辑;如果是新数据,那就是swagger-bootstrap-ui的缓存问题,可在浏览器开发者工具中勾选“禁用缓存”后刷新页面。

  4. 排查多Swagger配置冲突
    检查项目中是否存在多个Docket配置类,可能旧的配置类未被删除或禁用,导致文档生成使用了旧配置。确保只有一套生效的Swagger配置,且扫描的包路径正确。

  5. 确认Swagger注解更新正确
    检查修改后的接口是否正确更新了@ApiOperation、@ApiParam等注解,避免出现注解拼写错误、加错位置的情况,这些都会导致文档不更新。

内容的提问来源于stack exchange,提问作者liurl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:03:21