Swagger2多包實現方法

這里直接貼代碼了哦,看不懂的到我的上篇文章查看哦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;
    }

    ···
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。