如何移除Spring Doc生成标签中的-controller后缀?
如何移除Spring Doc生成标签中的"-controller"后缀?
当然可以!Spring Doc提供了几种灵活的方式来移除自动生成标签中的-controller后缀,下面给你两种常用的方案:
方案一:全局统一移除(适合所有控制器)
你可以通过自定义OpenApiCustomizer Bean,在Spring Doc构建OpenAPI文档时自动处理所有标签,批量去掉-controller后缀。
@Bean public OpenApiCustomizer tagSuffixRemover() { return openApi -> openApi.getTags().forEach(tag -> { String originalTagName = tag.getName(); if (originalTagName.endsWith("-controller")) { tag.setName(originalTagName.substring(0, originalTagName.lastIndexOf("-controller"))); } }); }
这个Bean会被Spring Doc自动加载,遍历所有生成的标签,检查并移除后缀,实现全局统一的标签名格式。
方案二:单个控制器自定义标签(灵活定制)
如果你只想针对特定控制器调整标签名,可以直接在控制器类上使用@Tag注解显式指定标签名称,这样Spring Doc就不会自动生成带-controller后缀的标签了。
@RestController @Tag(name = "My") // 这里指定的标签名会替代默认的"my-controller" public class MyController { // 你的接口方法... }
这种方式适合需要给不同控制器设置个性化标签名的场景,自由度更高。
额外说明
修改标签名后,通过OpenAPI生成客户端代码时,生成的客户端类名也会随之变化(比如原来的MyControllerApi会变成MyApi,具体取决于生成器的配置规则),正好符合你想要的效果。
内容的提问来源于stack exchange,提问作者Tobiq
相关产品推荐
相关产品推荐

