1、引入依赖

<!--swagger-->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version>
</dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version>
</dependency>

2、配置header(若有token的话,可以采用如下配置)

3、配置包扫描多路径

import com.google.common.base.Function;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
import com.example.demo.constant.StringConstant;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;
import java.util.List;/*** @className Swagger* @description swagger集成配置类* @author zlt* @date 2018/10/23* @version 1.0.0* @remark**/
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig extends WebMvcConfigurerAdapter {@Beanpublic Docket createRestApi() {//在请求header头部添加token参数ParameterBuilder ticketPar = new ParameterBuilder();List<Parameter> pars = new ArrayList<>();//name表示名称,description表示描述ticketPar.name(StringConstant.HEAD_TOKEN).description("登录校验token").modelRef(new ModelRef("string")).parameterType("header")//required表示是否必填.required(false).defaultValue("TOKEN默认值").build();pars.add(ticketPar.build());return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//可以配置多个包扫描路径.apis(SwaggerConfig.basePackage("com.example.demo.controller.department,com.example.demo.controller.user")).paths(PathSelectors.any()).build()//header配置在全局生效.globalOperationParameters(pars);}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("XXX接口文档").description("").termsOfServiceUrl("").version("1.0").build();}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}/*** @methodName basePackage* @description* @author zlt* @date 2018/10/29* @param basePackage 多个包名以逗号隔开* @return com.google.common.base.Predicate<springfox.documentation.RequestHandler>* @version 1.0.0**/public static Predicate<RequestHandler> basePackage(final String basePackage) {return new Predicate<RequestHandler>() {@Overridepublic boolean apply(RequestHandler input) {return declaringClass(input).transform(handlerPackage(basePackage)).or(true);}};}/*** @methodName handlerPackage* @description 处理包路径配置规则,支持多路径扫描匹配以逗号隔开* @author zlt* @date 2018/10/29* @param basePackage 扫描包路径* @return com.google.common.base.Function<java.lang.Class<?>,java.lang.Boolean>* @version 1.0.0**/private static Function<Class<?>, Boolean> handlerPackage(final String basePackage) {return new Function<Class<?>, Boolean>() {@Overridepublic Boolean apply(Class<?> input) {for (String strPackage : basePackage.split(",")) {boolean isMatch = input.getPackage().getName().startsWith(strPackage);if (isMatch) {return true;}}return false;}};}/*** @methodName declaringClass* @description 将实例对象转为optional对象* @author zlt* @date 2018/10/29* @param input* @return com.google.common.base.Optional<? extends java.lang.Class<?>>* @version 1.0.0**/private static Optional<? extends Class<?>> declaringClass(RequestHandler input) {return Optional.fromNullable(input.declaringClass());}
}

【SpringBoot】集成swagger相关推荐

  1. [Swagger2]SpringBoot集成Swagger

    SpringBoot集成Swagger 引入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 ...

  2. 20190909 SpringBoot集成Swagger

    SpringBoot集成Swagger 1. 引入依赖 // SpringBoot compile('org.springframework.boot:spring-boot-starter-web' ...

  3. springboot集成swagger页面空白解决方法

    今天在个人springboot项目使用swagger时遇到页面始终空白的问题,就顺便贴个博文,简单写下springboot集成swagger,并记录下问题. 1. 引入依赖包 <dependen ...

  4. 【水滴石穿】SpringBoot 集成Swagger

    SpringBoot 集成Swagger Swagger 可以使你的restful接口自动生成接口文档,方便查看与测试,下面是一些具体步骤: 1.引入swagger相关依赖 <dependenc ...

  5. Springboot集成Swagger

    Springboot集成Swagger 1. Swagger概述 2. Swagger注解说明 3. Springboot集成Swagger 3.1 引入依赖 3.2 工具类 3.3 配置类 3.4 ...

  6. SpringBoot集成swagger生成在线接口文档

    SpringBoot集成swagger生成在线接口文档 集成maven依赖 <dependency><groupId>io.springfox</groupId>& ...

  7. springboot 集成 swagger 自动生成API文档

    Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案. S ...

  8. Springboot 集成Swagger在线调试

    集成Swagger在线调试 转载http://blog.battcn.com/2018/05/16/springboot/v2-config-swagger/ SpringBoot是为了简化Sprin ...

  9. Springboot集成Swagger报错Parameter 0 of method linkDiscoverers in org.springframework.hateoas.config.Hat

    第一次尝试使用springboot完成后端开发,在做demo的过程中集成swagger发生报错. 其中,swagger版本为2.2.2,springboot版本为2.3.4 觉得可能是版本不匹配,将s ...

  10. SpringBoot——SpringBoot集成Swagger生成API文档

    文章目录: 1.写在前面 2.步骤详解 2.1 pom文件中添加Swagger依赖 2.2 在application.properties核心配置文件中配置Swagger 2.3 编写需要生成API文 ...

最新文章

  1. 《数据中心布线系统的设计与施工技术白皮书》目录
  2. 滴滴行程单用的什么字体_打车就送冰淇淋!滴滴出行放大招,限时19天
  3. Linux下c开发 之 线程通信与pthread_cond_wait()的使用
  4. [2.7]【CF933A】A Twisty Movement【CF926B】Add Points【CF917A】The Monster【CF919E】Congruence Equation
  5. C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)
  6. 使用 jQuery Mobile 与 HTML5 开发 Web App (三) —— jQuery Mobile 按钮
  7. vivox6android版本5.1,vivo X6 Plus的手机系统是什么?能升级安卓5.0吗?
  8. php华文行楷,css设置中文字体
  9. 大数据可视化工具-大屏展示
  10. 按键精灵实现自动刷抖音、快手等app
  11. 记一次网站服务器搬迁实录
  12. python控制qq添加好友_QQ增粉秘籍:QQ添加好友被限制 突破规则日增粉1000+
  13. 日常开单送货VBA模块
  14. web前端入门到实战:CSS颜色、背景和剪切
  15. 生猪出售 matlab,数学建模论文-肥猪最佳销售时机问题.doc
  16. C++ vector函数接口及其底层原理
  17. 中国网络安全人才需求
  18. 语音特征MFCC和PLP
  19. 微软2013校园招聘笔试题
  20. 多线程处理容器ExecutorCompletionService使用

热门文章

  1. 阿里聚安全年终盘点|2017互联网安全领域十大话题
  2. 多元线性回归matlab实现
  3. Crowding Counter 之 修改ShanghaiTech数据集
  4. JS无限滚动、回到顶端和图片懒加载
  5. 08音视频设备类、09信息技术设备、16电信终端设备CCC认证流程费用及周期
  6. c语言求50以内阶乘,C语言之数组50以内的阶乘.doc
  7. linux局域网共享目录软链接,网上邻居:LinuxMint局域网SAMBA共享如此简单
  8. 免费分享嵌入式stm32基础项目开发:心率检测仪的设计与实现
  9. C++Primer——第8章(IO库)
  10. jnz和djnz_djnz指令的应用方法