SpringBoot与knife4j的整合使用过程

 更新时间:2024年08月12日 14:48:04   作者:小小李程序员  
Knife4j 是一个基于Swagger构建的开源 JavaAPI文档工具,主要包括两大核心功能:文档说明和在线调试,这篇文章主要介绍了SpringBoot与knife4j的整合使用,需要的朋友可以参考下

在网上看了一堆 knife4j 的使用教程,很多都是报一堆错误,经过千方百次的尝试,终于找到了合适的版本及其配置

版本

此处是 knife4j2.0.7 版本 SpringBoot2.3.5.RELEASE 版本 

  其他版本推荐

        Spring Boot版本       Knife4j Swagger2规范
         1.5.x ~ 2.0.0     <Knife4j 2.0.0
         2.0 ~ 2.2     Knife4j 2.0.0 ~ 2.0.6
         2.2.x~2.4.0    Knife4j 2.0.6 ~ 2.0.9
          2.4.0~2.7.x     >=Knife4j 4.0.0
          >= 3.0     >=Knife4j 4.0.0

导入maven坐标

<!-- 导入knife4j2.0.7版本依赖  SpringBoot2.3.5.RELEASE 版本	-->
<dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>knife4j-spring-boot-starter</artifactId>
   <version>2.0.7</version>
</dependency>

  另外SpringBoot2.3.2.RELEASE ~ SpringBoot2.5.15版本与Knife4j2.0.7 ~ Knife4j3.0.3整合SpringBoot的起步依赖也是兼容的

编写配置类

  目录结构如下:

 配置类:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
    // Student组的测试文档
    @Bean(value = "studentDocket")
    public Docket studentDocket() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("测试学生端接口文档")		// 设置当前文档的标题
                        .description("用于测试学生端的所有接口的文档")		//自定义文档简介
                        .termsOfServiceUrl("写学生端人员的服务地址URL")	//写这个模块功能的程序员相关的URL
                        .contact("写学生端人员的联系方式(邮箱)")		//写这个模块功能的程序员的email邮箱
                        .version("1.0")	//指定当前文档的版本
                        .build())
                //分组名称
                .groupName("学生端")		//设置当前组名称
                .select()
                //这里指定Controller扫描包路径,"com.example.controller.student"是一个放Controller的包
                .apis(RequestHandlerSelectors.basePackage("com.example.controller.student"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
	// Teacher组的测试文档
    @Bean(value = "teacherDocket")
    public Docket teacherDocket() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("测试教师端接口文档")
                        .description("用于测试教师端的所有接口的文档")
                        .termsOfServiceUrl("写教师端人员的服务地址URL")
                        .contact("写教师端人员的联系方式(邮箱)")
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("教师端")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.example.controller.teacher"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

 StudentController学生控制层

TeacherController教师控制层

注解说明:

    @Api :可以通过tags属性描述当前控制层的相关信息

    @ApiOperation:可以通过value属性描述当前接口的功能

页面效果

  访问地址:http://localhost:8080/doc.html (我的端口是8080,如果你修改了程序启动端口,记得换成自己的端口)         

学生端

 教师端

到此这篇关于SpringBoot与knife4j的整合使用的文章就介绍到这了,更多相关SpringBoot 整合knife4j内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring配置多数据源切换

    Spring配置多数据源切换

    今天小编就为大家分享一篇关于Spring配置多数据源切换,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Spring Boot如何实现定时任务的动态增删启停详解

    Spring Boot如何实现定时任务的动态增删启停详解

    这篇文章主要给大家介绍了关于Spring Boot如何实现定时任务的动态增删启停的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • centos7如何通过systemctl启动springboot服务代替java -jar方式启动

    centos7如何通过systemctl启动springboot服务代替java -jar方式启动

    这篇文章主要介绍了centos7如何通过systemctl启动springboot服务代替java -jar方式启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • Springboot项目由JDK8升级至JDK17详细教程

    Springboot项目由JDK8升级至JDK17详细教程

    这篇文章主要为大家详细介绍了Springboot项目如何由JDK8升级至JDK17,本文为大家整理了全过程的详细步骤,有需要的小伙伴可以参考一下
    2025-06-06
  • Java协程编程之Loom项目实战记录

    Java协程编程之Loom项目实战记录

    这篇文章主要介绍了Java协程编程之Loom项目尝鲜,如果用尝鲜的角度去使用Loom项目,可以提前窥探JVM开发者们是如何基于协程这个重大特性进行开发的,这对于提高学习JDK内核代码的兴趣有不少帮助,需要的朋友可以参考下
    2021-08-08
  • Java中Spring使用Quartz任务调度定时器

    Java中Spring使用Quartz任务调度定时器

    本篇文章主要介绍了Java中Spring使用Quartz任务调度定时器,具有一定的参考价值,有兴趣的可以了解一下。
    2017-02-02
  • Java中的信息摘要算法MessageDigest类用法详解

    Java中的信息摘要算法MessageDigest类用法详解

    这篇文章主要介绍了Java中的信息摘要算法MessageDigest类用法详解,java.security.MessageDigest类为应用程序提供信息摘要算法的功能,如MD5或SHA-1或SHA-256算法,信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值,需要的朋友可以参考下
    2024-01-01
  • Java中zip的压缩和解压缩的实现代码

    Java中zip的压缩和解压缩的实现代码

    这篇文章主要介绍了Java中zip的压缩和解压缩的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Java使用EasyExcel操作读写excel方式

    Java使用EasyExcel操作读写excel方式

    这篇文章主要介绍了Java使用EasyExcel操作读写excel方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • JVM类加载机制详解

    JVM类加载机制详解

    本文主要介绍了JVM类加载机制的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论