公司一些老项目里加入了swagger,由于项目太大,接口巨多,扫描的无用的接口信息很恶心,用包路径区分的方式解决不了旧的controller上也新加了文档注解但扫描不到的问题。
偶然发现扫描api路径的时候可以选择只扫描带注解的,这个很实用,具体例子如下:
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) //只扫描有api注解的类
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//只扫描有ApiOperation注解的方法
.paths(PathSelectors.any())
.build()
.enable(!ENV.PRD.equals(ENV.getEnv(env)))
.apiInfo(apiInfo());
核心是两个:RequestHandlerSelectors.withClassAnnotation(Api.class)
RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)
看自己项目需要选择其中一个过滤方式就行了。