Swagger的增强knife4j

news2024/12/27 12:18:40

效果图

在这里插入图片描述

导入依赖

        <!--不是导入swagger原因就是:knife4j对swagger增强-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>

配置类

package com.itheima.reggie.config;

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import com.itheima.reggie.common.JacksonObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
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;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.List;
@EnableSwagger2
@EnableKnife4j
@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 设置静态资源
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始执行静态资源映射。。。");
        //下面这两个是Swagger的映射
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        //**下面这两个我放在resources文件的静态资源,如下图**
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
    }

    /**
     * 扩展mvc框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        log.info("使用自己的消息转换器");
//        创建消息转换器对象
        MappingJackson2HttpMessageConverter messageConverter=new MappingJackson2HttpMessageConverter();
//        设置对象转换器,底层使用Jackson将java转为json
        messageConverter.setObjectMapper(new JacksonObjectMapper());
//        将上面的消息转换器对象追加到mvc框架的转换容器集合中
        converters.add(0,messageConverter);
    }

    @Bean
    public Docket createRestApi() {
        // 文档类型
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.itheima.reggie.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("瑞吉外卖")
                .version("1.0")
                .description("瑞吉外卖接口文档")
                .build();
    }

}

在这里插入图片描述

过滤器放行请求

如果你有配置过滤器,则需要配置放行这四个请求
在这里插入图片描述

				"/doc.html",
                "/webjars/**",
                "/swagger-resources",
                "/v2/api-docs"

常用注解

注解说明
@Api用在请求的类上,例如Controller,表示对类的说明
@ApiModel用在类上,通常是实体类,表示一个返回响应数据的信息
@ApiModelProperty用在属性上,描述响应类的属性
@ApiOperation用在请求的方法上,说明方法的用途、作用
@ApilmplicitParams用在请求的方法上,表示一组参数说明
@ApilmplicitParam用在@ApilmplicitParams注解中,指定一个请求参数的各个方面

使用方式以及效果

第一种

在这里插入图片描述
在这里插入图片描述

第二种

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2076607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

考研数学| 张宇线代9讲换李永乐线代讲义,强化来得及吗?

张宇线代9讲&#xff1a; 张宇老师的线代九讲和张宇老师的线代课程搭配使用&#xff0c;相对于更适合线代底子足够强的同学。整体书的题目难度较大&#xff0c;所以开始刷了之后发现不适合自己可以选择换一本习题册&#xff0c;当然如果担心时间不够还是想尽力刷下去的话可以去…

8款每天都能用到的网站和APP,值得收藏

5个网站3个APP&#xff0c;都是自己每天常用的一些工具&#xff0c;强大实用&#xff0c;能给自己省不少事&#xff0c;分享给大家~ 1、奶牛快传 https://cowtransfer.com/ 一个让你轻松上传和分享大文件的网站。跟那些需要下载app、操作复杂的服务不同&#xff0c;奶牛快传…

随机森林与线性回归

集成学习方法之随机森林 集成学习&#xff08;Ensemble Learning&#xff09;是一种通过组合多个分类器来提高预测性能的方法。主要分为三种类型:Bagging、Boosting和Stacking。以下是集成学习的基本步骤和概念&#xff1a; 1数据采样&#xff1a;从训练集中有放回地随机抽取…

前端手写源码系列(一)—— 手写防抖和节流

目录 1.实现防抖函数&#xff08;debounce&#xff09;2.实现节流函数&#xff08;throttle&#xff09;时间戳的方式&#xff1a;定时器方式&#xff1a; 3.总结 1.实现防抖函数&#xff08;debounce&#xff09; 防抖函数原理&#xff1a;把触发非常频繁的事件合并成一次去执…

修复照片,2024年好用的图片修复工具推荐

在日常中&#xff0c;我们总爱用镜头捕捉生活的每一个瞬间&#xff0c;但随着时间的推移&#xff0c;那些珍贵的记忆可能会因像素不高、保存不当等原因变得模糊不堪。这时需要将模糊的照片修复清晰成为我们迫切的需求。下面给大家分享4种2024年好用值得推荐的修复工具&#xff…

【自动化】一共获取6600多公司信息【逆向】一页15还加密。

一、【逆向】一页15还加密。 二、【自动化】一共获取6600多公司信息 三、对于两种方式我喜欢第二种自动化 from DrissionPage import ChromiumPage, ChromiumOptions import time # chrome:version co = ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\A…

qt-19 QMainWindow窗口组件-菜单栏-工具栏

QMainWindow窗口组件-菜单栏-工具栏 showwidgetshowwidget.hshowwidget.cpp processorprocessor.hprocessor.cpp main.cpp运行图 showwidget showwidget.h #ifndef SHOWWIDGET_H #define SHOWWIDGET_H#include <QWidget> #include <QLabel> #include <QTextEd…

Sparse Kernel Canonical Correlation Analysis

论文链接&#xff1a;https://arxiv.org/pdf/1701.04207 看这篇论文终于看懂核函数了。。谢谢作者

小乌龟运动控制-2 小乌龟走方形

目录 第一章 小乌龟划圆圈 第二章 小乌龟走方形 文章目录 目录一、简陋版-乌龟行走方形二、强化版-乌龟行走方形 一、简陋版-乌龟行走方形 常见的简陋的控制乌龟行走方形的方式很简单&#xff0c;例如下面&#xff0c;可以测试下&#xff1a; 我们需要创建一个名为draw_squa…

韩顺平Java-第二十六章:正则表达式

一 正则表达式入门 1 极速体验正则表达式威力 package com.hspedu.regexp;import java.util.regex.Matcher; import java.util.regex.Pattern;体验正则表达式的威力&#xff0c;给我们文本处理带来哪些便利public class Regexp_ {public static void main(String[] args) {Str…

每日OJ_牛客_剪花布条(string内置函数)

目录 牛客_剪花布条&#xff08;string内置函数&#xff09; 解析代码 牛客_剪花布条&#xff08;string内置函数&#xff09; 剪花布条__牛客网 解析代码 题意就是在S串中&#xff0c;T串整体出现了多少次。C语言可以通过strstr函数找&#xff0c;用STL的string库可以通过f…

Docker方式部署K8s集群

1.1 集群创建说明 Kubernetes支持多种容器运行时&#xff0c;包括Containerd、Docker和CRI-O。以下是这三种方式的详细说明&#xff1a; Containerd&#xff1a;Containerd是Kubernetes默认使用的容器运行时。它是一个轻量级的容器运行时&#xff0c;专为Kubernetes设计&#…

基于Transformer架构的大模型推理硬件加速器设计

概述 当前大模型的基础架构正在向 Transformer 结构收敛1&#xff0c;Transformer架构自谷歌2017年提出后比较稳定&#xff0c;因此针对Transformer的计算设计专用的ASIC加速器很有必要。 尤其是“Attention is All you Need”》“Money is All you Need”&#xff0c;哈哈哈…

559. N 叉树的最大深度(递归法)

目录 一&#xff1a;题目&#xff1a; 二&#xff1a;代码&#xff1a; 三&#xff1a;结果&#xff1a; 一&#xff1a;题目&#xff1a; 给定一个 N 叉树&#xff0c;找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历…

Android原生JobSchedulerContext内存泄漏导致设备重启的现象

一、现象:原生JobSchedulerContext内存泄漏占比 JobServiceContext内存泄露导致ServiceDispatcher也跟着一起内存堆积 二、现象日志: 内存泄漏的日志关键信息:ActivityManager: Unbind failed: could not find connection for android.app.LoadedApk$ServiceDispatcher$In…

聚星文社——Ai推文工具

聚星文社——Ai推文工具 聚星文社是一家提供AI推文工具的公司。他们的工具利用人工智能技术&#xff0c;能够自动生成高质量的推文内容。 聚星文社——Ai推文工具https://iimenvrieak.feishu.cn/docx/ZhRNdEWT6oGdCwxdhOPcdds7nof 这个工具可以为用户提供多种功能。首先&…

【Datawhale X 李宏毅苹果书 AI夏令营】《深度学习详解》Task1 打卡

文章目录 前言学习目标 一、机器学习二、案例学习三、隐藏任务隐藏任务①&#xff1a;1. **回归 (Regression)**2. **分类 (Classification)**3. **模型 (Model)**4. **特征 (Feature)**5. **超参数 (Hyperparameter)**6. **训练集 (Training Set)**7. **验证集 (Validation Se…

Seata(简单配置就能使用,含下载)

Seata参考资料和下载 Seata官网: Apache Seata Seata中文开发文档: Seata 是什么&#xff1f; | Apache Seata Seata下载地址&#xff1a; 这里提供一个最新版的 seata-server-2.0.0.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘 Seata的配置 第一步解压Seat…

Vue笔记总结(Xmind格式):第一天

Xmind鸟瞰图&#xff1a; 简单文字总结&#xff1a; vue知识总结&#xff1a; vue的优点&#xff1a; 1.体积小 2.更高的运行效率 3.双向数据绑定 4.生态丰富&#xff0c;学习成本低 vue指令&#xff1a; 1.指令&#xff1a;带有v-前缀的特殊属性 2…

基于SSM的学生管理系统的设计与实现(包含源码、sql脚本、导入视频教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的学生管理系统2拥有三种角色 管理员&#xff1a;学生管理、教师管理、课程管理、个人信息管理等教师&#xff1a;添加课程、录入成绩、查看选课名单和结课、个人信息等学生&…