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

Spring Boot启动报错:不支持同名Swagger Docket分组

解决Swagger报错:Multiple Dockets with the same group name are not supported

这个错误的根源很明确:Swagger的Docket组件默认使用default作为组名,而你的项目里现在有多个Docket实例共用了这个默认组名,导致冲突。

看你的代码,问题出在两处配置的叠加:

  • SpringFoxConfig类里显式创建了一个Docket(默认组名default)
  • CoreApp类上也标注了@EnableSwagger2,这会让Swagger的自动配置逻辑可能额外生成一个默认的Docket,或者因为重复启用Swagger导致上下文里出现重复的Docket实例

给你两个简单的解决办法,选一个就行:

办法一:给自定义Docket指定唯一组名

修改SpringFoxConfig里的apiDocket()方法,给你的Docket设置一个独特的组名,比如test-api-group:

@Bean
public Docket apiDocket() {
    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("test-api-group") // 添加这行,设置唯一组名
            .select()
            .apis(RequestHandlerSelectors.basePackage("test.rest"))
            .paths(PathSelectors.ant("/test/**"))
            .build()
            .apiInfo(apiInfo());
}

这样你的自定义Docket就有了专属组名,不会和默认的Docket(如果存在)冲突。

办法二:移除重复的@EnableSwagger2注解

Swagger只需要在一个配置类上启用就行,你现在在两个类上都加了@EnableSwagger2,完全没必要。把CoreApp上的这个注解删掉:

@OurApp
public class CoreApp extends OurApp { }

只保留SpringFoxConfig上的@EnableSwagger2,这样就不会触发重复的Docket注册逻辑。

修改完之后重启服务,这个组名冲突的错误应该就消失了。如果还是有问题,可以排查下项目里有没有其他地方也定义了Docket实例,确保每个Docket的groupName都是唯一的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:05:28