首页 > 其他分享 >spring boot整合knife4j

spring boot整合knife4j

时间:2023-03-13 21:44:49浏览次数:43  
标签:knife4j spring documentation boot springframework project import springfox com

文档地址:https://doc.xiaominfo.com/

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

1. 添加依赖

操作模块:service-uitl

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
2. 添加knife4j配置类

操作模块:service-uitl

package com.project.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

import java.util.ArrayList;
import java.util.List;


/**
 * knife4j配置信息
 */
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {

    @Bean
    public Docket adminApiConfig(){
        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder tokenPar = new ParameterBuilder();
        tokenPar.name("token")
                .description("用户token")
                .defaultValue("")
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(false)
                .build();
        pars.add(tokenPar.build());
        //添加head参数end
        Docket adminApi = new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .apiInfo(adminApiInfo())
                .select()
                //只显示admin路径下的页面
                .apis(RequestHandlerSelectors.basePackage("com.project"))
                .paths(PathSelectors.regex("/admin/.*"))
                .build()
                .globalOperationParameters(pars);
        return adminApi;
    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("本文档描述了后台管理系统微服务接口定义")
                .version("1.0")
                .contact(new Contact("project", "http://project.com", "[email protected]"))
                .build();
    }


}
3. Controller层添加注解
package com.project.auth.controller;

import com.project.auth.model.system.SysRole;
import com.project.auth.service.SysRoleService;
import com.project.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@Api(tags = "角色管理接口")
@RestController
@RequestMapping("/admin/system/sysRole")
public class SysRoleController {
    @Autowired
    private SysRoleService sysRoleService;

    //查询所有角色
    @ApiOperation("查询所有角色")
    @GetMapping("/findAll")
    public Result findAll(){
        List<SysRole> list = sysRoleService.list();
        return Result.ok(list);
    }
}
4.测试
http://localhost:8800/doc.html

标签:knife4j,spring,documentation,boot,springframework,project,import,springfox,com
From: https://www.cnblogs.com/forever0406/p/17213006.html

相关文章

  • spring面试
    spring概述 基本使用    IOC        IOC接口     ......
  • Spring 邮件发送
    Spring邮件发送1.主要内容2.JavaMail概述 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。JavaMail是由Sun定义的一套收发电子邮件的API,它可以......
  • SpringCloud多模块项目打包报错Unable to find main class
    SpringCloud多模块项目打包报错Unabletofindmainclass彻底解决方法:所有子模块都去掉打包插件代码,在parent模块的pom中加上 <build>    <plugins>   ......
  • Spring Cloud Alibaba实现服务的无损下线功能
    目录1、背景2、解决方案2.1找到通过负载均衡组件获取可用服务信息的地方2.2解决思路3、部分实现代码3.1引入jar3.2编写服务下线方法3.3监听配置变更,清除服务缓存3.3.1......
  • SpringBoot--过滤器/拦截器/AOP--区别/使用/顺序
    SpringBoot--过滤器/拦截器/AOP--区别/使用/顺序https://knife.blog.csdn.net/article/details/121387483?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant......
  • SpringBoot框架(43):POI高效导出百万级Excel数据?
    Excel简介什么是excel就不用介绍了,这里主要说明不同版本下每个sheet下的行列限制。版本区间行数列数生成文件后缀   image.png由上面可知Exce......
  • Mybatis+SpringBoot集成+Plus+Generator
    前言1.本文主要记录mybatis的使用及核心原理、mybatis集成springboot项目的相关内容、mybatis-plus概述和核心功能的使用。2.相关官网文档链接:(1)mybatis:https://mybatis......
  • SpringMVC:纯注解开发的流程?
    一、导入依赖 二、创建SpringMVC配置类@Configuration@ComponentScan("com.lurenjia.controller")//扫描注解的包publicclassSpringmvcConfig{}创建Spring配......
  • day01-SpringBoot基本介绍
    SpringBoot基本介绍1.SpringBoot是什么?官网地址:https://spring.io/projects/spring-boot学习文档:https://docs.spring.io/spring-boot/docs/2.7.10-SNAPSHOT/reference......
  • java.lang.IllegalStateException: couldn't determine local port. Please set sprin
    2023-03-12记录一下出现上述问题的原因(1)问题描述:在打包springboot项目时,出现了上述问题(2)产生原因:在打包时,项目的生命周期中没有关闭test(3)解决方法:关闭test,如图,之后......