SpringBoot基于knife4j生成接口文档方式

 更新时间:2026年05月30日 14:49:12   作者:半城喧嚣、半城空  
Knife4j介绍一个基于Swagger的JavaAPI文档生成工具,提供美观界面和高级功能,本文详细介绍了在SpringBoot项目中集成Knife4j的方法,包括导入依赖、创建Swagger配置和WebMvcConfiguration配置类等

一、Knife4j介绍

Knife4j是一个基于Swagger构建的开源Java API文档工具,它为Java开发者提供了生成、展示和调试API文档的功能。

它提供了一套美观且功能强大的界面,可以自动生成API文档,并支持接口分组、参数设置、请求示例、响应模型配置等高级功能。

不同版本的SpringBoot项目需要不同版本的依赖,可去官方查看

二、在pom.xml中导入依赖

// SpringBoot2.1.8可使用如下版本
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.4</version>
</dependency>

三、创建Swagger配置依赖,代码如下

//com.ztm.config.Knife4jConfiguration
// 如果后端接口分为用户端和管理端,就在配置类中创建Docket1()和Docket2()

@Configuration
@EnableSwagger2  //根据依赖的版本不同可能是@EnableSwagger2或者@EnableSwagger2WebMvc
public class Knife4jConfiguration {
    @Bean
    public Docket Docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("SpringBoot2-Demo")
                .version("2.0")
                .description("SpringBoot2-Demo")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .groupName("xxx端接口")   //分组名称
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ztm.controller")) //这里指定Controller扫描包路径
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

四、创建WebMvcConfiguration配置类,设置Knife4j生成的接口文档静态资源映射。

// com.ztm.config.WebMvcConfiguration
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
    /**
     * 设置Knife4j接口文档静态资源映射
     * @param registry
     */
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

五、在controller接口中添加相应的注解描述

  • @Api:类上注解,控制整个类生成接口信息的内容。属性tags:类的名称
  • @ApiOperation:方法上注解,描述方法的相关消息。属性value:描述方法作用

示例如下:

六、启动项目,访问

http://localhost:8080/doc.html

七、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java 数据库连接池DBPool 介绍

    Java 数据库连接池DBPool 介绍

    这篇文章主要给大家分享了Java 数据库连接池DBPool 介绍,<BR>DBPool是一个高效的易配置的数据库连接池。它除了支持连接池应有的功能之外,还包括了一个对象池使你能够开发一个满足自已需求的数据库连接池,下面一起来看看文章内容的详细介绍吧,需要的朋友可以参考一下
    2021-11-11
  • SpringBoot时间格式化的方法小结

    SpringBoot时间格式化的方法小结

    SpringBoot中的时间格式化通常指的是将Java中的日期时间类型转换为指定格式的字符串,或者将字符串类型的时间解析为Java中的日期时间类型,本文小编将给大家详细总结了SpringBoot时间格式化的方法,刚兴趣的小伙伴跟着小编一起来看看吧
    2023-10-10
  • SpringBoot3配置文件的使用技巧分享

    SpringBoot3配置文件的使用技巧分享

    SpringBoot 的核心优势之一便是约定大于配置,无需繁琐的 XML 配置,仅通过简单的配置文件就能完成项目的个性化定制,本文将从配置文件的核心类型、基础使用、高级特性、最佳实践四个维度,全方位拆解 SpringBoot3 配置文件的使用技巧,需要的朋友可以参考下
    2026-02-02
  • IDEA的Mybatis Log Plugin插件配置和使用详解

    IDEA的Mybatis Log Plugin插件配置和使用详解

    这篇文章主要介绍了IDEA的Mybatis Log Plugin插件配置和使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java基础-Java的体系结构

    Java基础-Java的体系结构

    这篇文章主要介绍了Java的体系结构,Java几乎成为了“开源”的代名词。第三方开源软件和框架。如Tomcat、Struts,MyBatis,Spring等,下面我们来看看文章具体的内容介绍吧
    2022-01-01
  • Java实现HDFS文件上传下载

    Java实现HDFS文件上传下载

    这篇文章主要为大家详细介绍了Java实现HDFS文件上传下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • java通过控制鼠标实现屏幕广播的方法

    java通过控制鼠标实现屏幕广播的方法

    这篇文章主要介绍了java通过控制鼠标实现屏幕广播的方法,针对前面一篇Java屏幕共享功能进行了改进,实现了鼠标控制功能,具有一定的实用价值,需要的朋友可以参考下
    2014-12-12
  • Java实现短信验证码详细过程

    Java实现短信验证码详细过程

    这篇文章主要给大家介绍了关于Java实现短信验证码的相关资料, 在业务需求中我们经常会用到短信验证码,比如手机号登录、绑定手机号、忘记密码、敏感操作等,需要的朋友可以参考下
    2023-09-09
  • Java简单获取字符串像素的方法

    Java简单获取字符串像素的方法

    这篇文章主要介绍了Java简单获取字符串像素的方法,涉及Java针对字符串字体操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • SpringBoot利用Redis消息队列实现数据库表变更监听的具体方案

    SpringBoot利用Redis消息队列实现数据库表变更监听的具体方案

    在现代应用开发中,实时感知数据库表的变化是一项常见需求,无论是为了实现缓存一致性、触发后续业务流程,还是构建实时数据分析系统,表变更监听都扮演着重要角色,本文将介绍如何在SpringBoot应用中利用Redis消息队列机制高效实现数据库表变更的监听
    2025-09-09

最新评论