Swagger生成Api文档的增强解决方案--knife4j

springboot版本号:2.7.3
knife4j:3.0.2

使用步骤

  1. 导入 knife4j 的maven坐标

    在pom.xml中添加依赖

     <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-spring-boot-starter</artifactId>
        <version>3.0.2</version>
     </dependency>
    
  2. 在配置类中加入 knife4j 相关配置WebMvcConfiguration.java

/**
     * 通过knife4j生成接口文档
     * @return
*/
    @Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("项目接口文档")
                .version("2.0")
                .description("项目接口文档")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

3. 

设置静态资源映射,否则接口文档页面无法访问

WebMvcConfiguration.java

 /**
      * 设置静态资源映射
      * @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/");
 }

4.访问:localhost:8080/doc.html 

完整代码如下:

package com.qing.springboot.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * 配置类,注册web层相关组件
 */
@Configuration
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {



    /**
     * 通过knife4j生成接口文档
     * @return
     */
    @Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("项目接口文档")
                .version("2.0")
                .description("项目接口文档")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.qing.springboot.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

    /**
     * 设置静态资源映射
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

友情提示:有些内容是可以根据自己的项目进行改写的,次框架还有一些其他的功能,请自行学习。祝每次运行顺利! 

相关推荐

  1. Swagger生成Api文档增强解决方案--knife4j

    2024-07-20 03:08:05       22 阅读
  2. API文档生成工具-----Knife4介绍

    2024-07-20 03:08:05       68 阅读
  3. Springboot3 集成knife4j(swagger)

    2024-07-20 03:08:05       35 阅读
  4. Swagger介绍与knife4j框架

    2024-07-20 03:08:05       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 03:08:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 03:08:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 03:08:05       45 阅读
  4. Python语言-面向对象

    2024-07-20 03:08:05       55 阅读

热门阅读

  1. 虫虫老师---义务教育核心课程改革

    2024-07-20 03:08:05       14 阅读
  2. 面试题 16.07. 最大数值

    2024-07-20 03:08:05       16 阅读
  3. 【基础算法】排序

    2024-07-20 03:08:05       14 阅读
  4. 说说Vue2.0和Vue3.0有什么区别

    2024-07-20 03:08:05       17 阅读
  5. kubernetes学习日志(六)

    2024-07-20 03:08:05       12 阅读
  6. JWT身份验证、授权介绍、应用场景和示例代码

    2024-07-20 03:08:05       18 阅读
  7. VUE3【实用教程】(2024最新版)

    2024-07-20 03:08:05       19 阅读
  8. LLM推理需要占用多少显存

    2024-07-20 03:08:05       16 阅读
  9. 应届硕士职业生涯规划

    2024-07-20 03:08:05       16 阅读
  10. 2024 Linux 运维面试题分享-1

    2024-07-20 03:08:05       15 阅读