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 IOC容器的方法

    手把手教你写一个spring IOC容器的方法

    这篇文章主要介绍了手把手教你写一个spring IOC容器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java解析http协议字符串的方法实现

    Java解析http协议字符串的方法实现

    本文主要介绍了Java解析http协议字符串的方法实现,我们探讨了如何使用Java解析HTTP协议字符串,并将其封装成了一个HttpRequest类,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Java 文件传输助手的实现(单机版)

    Java 文件传输助手的实现(单机版)

    这篇文章主要介绍了Java 文件传输助手的实现(单机版),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • java IO实现电脑搜索、删除功能的实例

    java IO实现电脑搜索、删除功能的实例

    下面小编就为大家带来一篇java IO实现电脑搜索、删除功能的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 利用Java多线程技术导入数据到Elasticsearch的方法步骤

    利用Java多线程技术导入数据到Elasticsearch的方法步骤

    这篇文章主要介绍了利用Java多线程技术导入数据到Elasticsearch的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Java避免重复上传相同图片的解决方案

    Java避免重复上传相同图片的解决方案

    相信大家也都经历过,前端在一个请求发送后立即禁用掉按钮,这里咱们来讨论一下后端对防止重复提交的处理方式,这篇文章主要介绍了Java避免重复上传相同图片的解决方案,需要的朋友可以参考下
    2025-06-06
  • 解决springboot文件上传提示临时文件夹不存在问题

    解决springboot文件上传提示临时文件夹不存在问题

    这篇文章主要介绍了解决springboot文件上传提示临时文件夹不存在问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java编程实现swing圆形按钮实例代码

    Java编程实现swing圆形按钮实例代码

    这篇文章主要介绍了Java编程实现swing圆形按钮实例代码,涉及两个简单的Java实现按钮的代码,其中一个具有侦测点击事件的简单功能,具有一定借鉴价值,需要的朋友可以参考。
    2017-11-11
  • Java 如何接收kernel传过来的数组(推荐)

    Java 如何接收kernel传过来的数组(推荐)

    这篇文章主要介绍了Java 如何接收kernel传过来的数组,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-08-08
  • Java实现synchronized锁同步机制

    Java实现synchronized锁同步机制

    synchronized是java内置的同步锁实现,本文就详细的介绍一下Java实现synchronized锁同步机制,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11

最新评论