springbootapi文档(springboot整合swagger2+knife4j)

2026-05-12 13:30:02 :0

springbootapi文档(springboot整合swagger2+knife4j)

本篇文章给大家谈谈springbootapi文档,以及springboot整合swagger2+knife4j对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

本文目录

springboot整合swagger2+knife4j

前言:前面文件已经发过swagger2的整合教程 SpringBoot整合swagger ,本文主要是介绍knife4j。

Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍!

二、加入配置类

三、配置文件

四、扩展
***隐藏网址***
***隐藏网址***
***隐藏网址***

springboot,springmvc整合swagger

1.Springboot整合Swagger2

1.1.pom加swagger依赖

《dependency》

         《groupId》io.springfox《/groupId》

         《artifactId》springfox-swagger2《/artifactId》

         《version》2.9.2《/version》

      《/dependency》

      《!-- 《dependency》

         io.springfox

         springfox-swagger-ui

         2.9.2

      --》

      《dependency》

            《groupId》com.github.xiaoymin《/groupId》

            《artifactId》swagger-bootstrap-ui《/artifactId》

            《version》1.9.0《/version》

        《/dependency》

      《dependency》

          《groupId》io.swagger.core.v3《/groupId》

          《artifactId》swagger-annotations《/artifactId》

          《version》2.0.8《/version》

      《/dependency》

        《dependency》

          《groupId》io.swagger.core.v3《/groupId》

          《artifactId》swagger-models《/artifactId》

          《version》2.0.8《/version》

《/dependency》

1.2.添加swagger配置类

@Configuration

@EnableSwagger2

@EnableSwaggerBootstrapUI

//@ConditionalOnExpression("${swagger.enable:true}")

public class Swagger2 {
//    @Override 

//    public voidaddResourceHandlers(ResourceHandlerRegistry registry) { 

//       registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); 

//        registry.addResourceHandler("/webjars*").addResourceLocations("classpath:/META-INF/resources/webjars/"); 

//    } 
   @Value("${swagger.enable:true}")

   private String enable;
   @Value("${swagger.basePackage}")

   private String basePackage;
   @Bean

   public Docket createRestApi()

{

      Predicateselector= PathSelectors. none ();

      if ("true".equals(enable)) {

         selector=PathSelectors. any ();

      }

      //定义全局参数

       Listpars = new ArrayList《》();

          ParameterBuildertoken = new ParameterBuilder();

          token.name("token").description("token").modelRef( new ModelRef("string")).parameterType("header").required( false ).build();

          pars.add(token.build());

      return new Docket(DocumentationType. SWAGGER_2 )

            .globalOperationParameters(pars) // 全局参数

            .groupName("demo01")//指定分组

            .apiInfo(apiInfo())

            .select()

            .apis(RequestHandlerSelectors. basePackage (basePackage))

//          .paths(PathSelectors.any())

            .paths(selector)

            .build();

   }
   private ApiInfo apiInfo() {

      return new ApiInfoBuilder()

            .title("SpringBoot测试使用 Swagger2 构建RESTful API")

            .description("springboot demo 接口文档")

            .version("1.0")

            .build();

   }

}

1.3.加上swagger启用禁用开关

新建application.properties文件

#swagger启用禁用标识true:启用

swagger.enable=true

#swagger扫描需生成文档的包路径

swagger.basePackage=com.tjc.springbootDemo.controller
1.4.Swagger具体注释用法

***隐藏网址***

1.5本地访问swagger文档

***隐藏网址***

***隐藏网址***

***隐藏网址***

1.6.在线访问swagger接口

***隐藏网址***

1.7.demo源码访问地址

***隐藏网址***

2.Springmvc整合Swagger2

2.1.pom加依赖

《!-- swagger --》

      《dependency》

          《groupId》com.fasterxml.jackson.core《/groupId》

          《artifactId》jackson-annotations《/artifactId》

          《version》2.9.9《/version》

      《/dependency》

      《dependency》

          《groupId》com.fasterxml.jackson.core《/groupId》

          《artifactId》jackson-core《/artifactId》

          《version》2.9.9《/version》

      《/dependency》

      《dependency》

          《groupId》com.fasterxml.jackson.core《/groupId》

          《artifactId》jackson-databind《/artifactId》

          《version》2.9.9《/version》

      《/dependency》

       《dependency》

         《groupId》io.springfox《/groupId》

         《artifactId》springfox-swagger2《/artifactId》

         《version》2.9.2《/version》

      《/dependency》

      《!-- 《dependency》

         io.springfox

         springfox-swagger-ui

         2.7.0

      --》

      《dependency》

            《groupId》com.github.xiaoymin《/groupId》

            《artifactId》swagger-bootstrap-ui《/artifactId》

            《version》1.9.0《/version》

        《/dependency》

      《dependency》

          《groupId》io.swagger.core.v3《/groupId》

          《artifactId》swagger-annotations《/artifactId》

          《version》2.0.8《/version》

      《/dependency》

        《dependency》

          《groupId》io.swagger.core.v3《/groupId》

          《artifactId》swagger-models《/artifactId》

          《version》2.0.8《/version》
2.2.添加swagger配置类

@Configuration

@EnableSwagger2

@EnableWebMvc

@EnableSwaggerBootstrapUI

@PropertySource(value="classpath:swagger.properties")

public class Swagger2 {
   @Value("${swagger.enable:true}")

   private String enable;
   @Value("${swagger.basePackage}")

   private String basePackage;
   @Bean

   public Docket createRestApi()

{

      Predicateselector= PathSelectors. none ();

      //启用swagger

      if ("true".equals(enable)) {

         selector=PathSelectors. any ();

      }

//    //定义全局参数

//    List pars = new ArrayList();

//        ParameterBuilder token = newParameterBuilder();

//       token.name("token").description("token").modelRef(newModelRef("string")).parameterType("header").required(false).build();

//        pars.add(token.build());

      return new Docket(DocumentationType. SWAGGER_2 )

//          .globalOperationParameters(pars)//全局参数

            .groupName("demo01")//指定分组

            .apiInfo(apiInfo())

            .select()

            .apis(RequestHandlerSelectors. basePackage (basePackage))

//          .paths(PathSelectors.any())

            .paths(selector)

            .build();

   }
   private ApiInfo apiInfo() {

      return new ApiInfoBuilder()

            .title("SpringMvc测试使用 Swagger2 构建RESTful API")

            .description("springmvc demo 接口文档")

            .version("1.0")

            .build();

   }

}

2.3. 创建swagger.properties文件

#swagger启用禁用标识true:启用

swagger.enable=true

#swagger扫描需生成文档的包路径

swagger.basePackage=com.tjc.springmvcDemo.controller
2.4.springmvc初始化文件添加扫包配置

《!-- 开启springmvc注解 --》

    《mvc:annotation-driven/》

    《mvc:default-servlet-handler/》

   《context:component-scanbase-package= "com.tjc.springmvcDemo.controller" /》

  《!-- 添加配置文件 --》

  《context:property-placeholderlocation= "classpath:swagger.properties" /》
   《context:component-scanbase-package= "com.tjc.springmvcDemo.config.swagger" /》

2.5.Swagger具体注释用法

***隐藏网址***

2.6.在线访问swagger接口

***隐藏网址***

2.7.demo源码访问地址

***隐藏网址***

3.问题整理

3.1.项目中拦截器,过滤器拦截了swagger路径

解决方案:剔除/swagger-resources,/webjars/,/v2/,/doc.html/等路径
.excludePathPatterns("/swagger-resources/**","/webjars/**","/v2/**","/doc.html/**");

3.2. guava-${version}.jar包冲突

解决方案:在maven仓库查找最新guava jar包;

3.3.分布式聚合文档结合eureka注册中心发现服务,zuul解决浏览器跨域,通过调用swagger的/v2/doc-api接口获取文档json数据实现文档聚合管理

关于springbootapi文档和springboot整合swagger2+knife4j的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

springbootapi文档(springboot整合swagger2+knife4j)

本文编辑:admin

更多文章:


microchip单片机有什么不同(Microchip、NXP、Fujitsu、Texas Instruments、Freescale 、STC几家单片机厂商各自特点及应用领域)

microchip单片机有什么不同(Microchip、NXP、Fujitsu、Texas Instruments、Freescale 、STC几家单片机厂商各自特点及应用领域)

大家好,如果您还对microchip单片机有什么不同不太了解,没有关系,今天就由本站为大家分享microchip单片机有什么不同的知识,包括Microchip、NXP、Fujitsu、Texas Instruments、Freescale

2026年9月20日 07:15

怎么编辑图片文件(手机怎么把照片编辑到文档里)

怎么编辑图片文件(手机怎么把照片编辑到文档里)

本篇文章给大家谈谈怎么编辑图片文件,以及手机怎么把照片编辑到文档里对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录手机怎么把照片编辑到文档里

2026年5月23日 05:30

linux命令大全中的chown(chown在linux下是什么命令)

linux命令大全中的chown(chown在linux下是什么命令)

大家好,今天小编来为大家解答以下的问题,关于linux命令大全中的chown,chown在linux下是什么命令这个很多人还不知道,现在让我们一起来看看吧!本文目录chown在linux下是什么命令linux命令 chownchown 命令

2025年10月21日 11:00

kubernetes csi(k8s驱动之CSI)

kubernetes csi(k8s驱动之CSI)

大家好,关于kubernetes csi很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于k8s驱动之CSI的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目

2026年1月26日 12:15

swing工具包(如何向eclipse里插入Swing包)

swing工具包(如何向eclipse里插入Swing包)

各位老铁们,大家好,今天由我来为大家分享swing工具包,以及如何向eclipse里插入Swing包的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录

2025年11月5日 16:15

宝宝起名用什么颜色比较好呀?用赵清澄给宝宝起名好不好女孩子用颜色起名有哪些

宝宝起名用什么颜色比较好呀?用赵清澄给宝宝起名好不好女孩子用颜色起名有哪些

大家好,如果您还对颜色起名不太了解,没有关系,今天就由本站为大家分享颜色起名的知识,包括宝宝起名用什么颜色比较好呀的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录宝宝起名用什么颜色比较好呀用赵清澄给宝宝起名好不好女

2025年7月21日 13:15

帕罗西汀吃了6天实在受不了(第一天吃帕罗西汀有点难受,可以停吗)

帕罗西汀吃了6天实在受不了(第一天吃帕罗西汀有点难受,可以停吗)

各位老铁们好,相信很多人对帕罗西汀吃了6天实在受不了都不是特别的了解,因此呢,今天就来为大家分享下关于帕罗西汀吃了6天实在受不了以及第一天吃帕罗西汀有点难受,可以停吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目

2025年8月3日 17:00

steam多少钱(steam的gta5现在多少钱)

steam多少钱(steam的gta5现在多少钱)

这篇文章给大家聊聊关于steam多少钱,以及steam的gta5现在多少钱对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录steam的gta5现在多少钱节奏医生steam价格介绍steam2000点数等于消费多少钱steam森

2026年2月22日 20:30

批处理命令关闭密码保护共享(怎样写批处理文件关闭系统的默认共享)

批处理命令关闭密码保护共享(怎样写批处理文件关闭系统的默认共享)

大家好,今天小编来为大家解答以下的问题,关于批处理命令关闭密码保护共享,怎样写批处理文件关闭系统的默认共享这个很多人还不知道,现在让我们一起来看看吧!本文目录怎样写批处理文件关闭系统的默认共享win7怎样禁止文件共享求关闭简单文件共享的批处

2026年9月7日 23:45

css元素定位方法(题:CSS定位方式有哪些)

css元素定位方法(题:CSS定位方式有哪些)

今天给各位分享题:CSS定位方式有哪些的知识,其中也会对题:CSS定位方式有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录题:CSS定位方式有哪些CSS如何相对同辈元素定位CSS 中定位方式有几种,说明他

2025年6月10日 23:30

汉字二进制编码表(汉字国标码规定了一级汉字和二级汉字各多少个)

汉字二进制编码表(汉字国标码规定了一级汉字和二级汉字各多少个)

本篇文章给大家谈谈汉字二进制编码表,以及汉字国标码规定了一级汉字和二级汉字各多少个对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录汉字国标码规定了一级汉字和二级汉字各多少个汉字的编码有几种怎么看哪个是汉字的国际码汉字内码是什么

2025年10月12日 00:30

量化交易系统开发源码(量化投资用什么编程语言研发策略好呢)

量化交易系统开发源码(量化投资用什么编程语言研发策略好呢)

各位老铁们好,相信很多人对量化交易系统开发源码都不是特别的了解,因此呢,今天就来为大家分享下关于量化交易系统开发源码以及量化投资用什么编程语言研发策略好呢的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录量化投资用

2026年5月30日 21:45

swing帮助文档(eclipse里怎么查看jdk的帮助文档)

swing帮助文档(eclipse里怎么查看jdk的帮助文档)

各位老铁们好,相信很多人对swing帮助文档都不是特别的了解,因此呢,今天就来为大家分享下关于swing帮助文档以及eclipse里怎么查看jdk的帮助文档的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录ecli

2025年6月27日 01:15

dominate后用哪个介词(把字用英语怎么说)

dominate后用哪个介词(把字用英语怎么说)

今天给各位分享把字用英语怎么说的知识,其中也会对把字用英语怎么说进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录把字用英语怎么说专升本英语核心词汇汇总把字用英语怎么说把 动词1. (执; 握住) grasp;

2025年12月27日 17:00

cadence 步频(在跑步过程中,如何利用好步幅和步频之间的平衡点)

cadence 步频(在跑步过程中,如何利用好步幅和步频之间的平衡点)

大家好,关于cadence 步频很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于在跑步过程中,如何利用好步幅和步频之间的平衡点的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对

2026年2月8日 00:30

textarea显示全部内容(在textarea中输入内容并显示内容(html等也当字符显示))

textarea显示全部内容(在textarea中输入内容并显示内容(html等也当字符显示))

各位老铁们,大家好,今天由我来为大家分享textarea显示全部内容,以及在textarea中输入内容并显示内容(html等也当字符显示)的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,

2026年3月17日 22:45

C语言中换行符和回车符的区别?C语言中怎么实现自动换行

C语言中换行符和回车符的区别?C语言中怎么实现自动换行

大家好,关于c语言换行很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于C语言中换行符和回车符的区别的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录C语言

2025年9月23日 17:30

下拉列表用什么标签(下拉菜单必须用button标签,不可以用a标签)

下拉列表用什么标签(下拉菜单必须用button标签,不可以用a标签)

大家好,关于下拉列表用什么标签很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于下拉菜单必须用button标签,不可以用a标签的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各

2026年5月23日 17:45

自学python看哪些书(python的推荐书籍有哪些)

自学python看哪些书(python的推荐书籍有哪些)

大家好,今天小编来为大家解答以下的问题,关于自学python看哪些书,python的推荐书籍有哪些这个很多人还不知道,现在让我们一起来看看吧!本文目录python的推荐书籍有哪些python入门书籍推荐python的推荐书籍有哪些零基础如何

2025年10月31日 04:30

getchar()的功能和gets(C语言中单独一行getchar()然后下一行gets是什么用法求解)

getchar()的功能和gets(C语言中单独一行getchar()然后下一行gets是什么用法求解)

各位老铁们,大家好,今天由我来为大家分享getchar()的功能和gets,以及C语言中单独一行getchar()然后下一行gets是什么用法求解的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大

2026年3月1日 08:45

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索