這里直接貼代碼了哦,看不懂的到我的上篇文章查看哦Swagger2使用教程詳解(包含注解)。
提示:網上有種declaringClass的使用方法,該方法在后面已經被棄用,請使用我寫的方法就好啦!
···
//定義分割符號
private static final String SPLITOR = ";";
public class SwaggerConfig implements WebMvcConfigurer {
@Bean
public Docket createRestApi() {
log.info(""+swaggerEnabled);
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.select()
//這里用;隔開寫多個就可以嘍
.apis(RequestHandlerSelectors.basePackage("路徑;路徑;路徑")
.paths(PathSelectors.any())
.build();
}
···
/**
* 切割掃描的包生成Predicate<RequestHandler>
* @param basePackage
* @return
*/
public static Predicate<RequestHandler> scanBasePackage(final String basePackage) {
if(StringUtils.isBlank(basePackage))
throw new NullPointerException("basePackage不能為空,多個包掃描使用"+SPLITOR+"分隔");
String[] controllerPack = basePackage.split(SPLITOR);
Predicate<RequestHandler> predicate = null;
for (int i = controllerPack.length -1; i >= 0 ; i--) {
String strBasePackage = controllerPack[i];
if(StringUtils.isNotBlank(strBasePackage)){
Predicate<RequestHandler> secPredicate = RequestHandlerSelectors.basePackage(strBasePackage);
predicate = predicate == null ? secPredicate : Predicates.or(secPredicate,predicate);
}
}
if(predicate == null)
throw new NullPointerException("basePackage配置不正確,多個包掃描使用"+SPLITOR+"分隔");
return predicate;
}
···
}