spring boot 之 整合 knife4j 在线接口文档

pom依赖

<!--knife4j-->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>

application.yml

knife4j:# 开启增强功能enable: true# 是否屏蔽生产环境production: true# 设置是否开启账密验证以及账密,改为true后访问页面时需输入账密basic:enable: falseusername: adminpassword: admin

配置类

import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
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.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
@EnableKnife4j
public class SwaggerConfig {// 创建Docket存入容器,Docket代表一个接口文档@Beanpublic Docket webApiConfig(){return new Docket(DocumentationType.SWAGGER_2).useDefaultResponseMessages(false)// 创建接口文档的具体信息.apiInfo(webApiInfo())// 创建选择器,控制哪些接口被加入文档.select()// 指定@ApiOperation标注的接口被加入文档,改为你自己的包路径.apis(RequestHandlerSelectors.basePackage("com.sun.controller")).paths(PathSelectors.any()).build();}// 创建接口文档的具体信息,会显示在接口文档页面中private ApiInfo webApiInfo(){return new ApiInfoBuilder()// 文档标题.title("参数校验Demo")// 文档描述.description("demo测试")// 版本.version("1.0").build();}
}

示例

@ApiModel("SysUser实体类")
@Data
public class SysUser {@ApiModelProperty(value = "id", required = true)private Integer id;@ApiModelProperty(value = "name", required = true)private String name;@ApiModelProperty(value = "birth", required = true)private Date birth;}
@Api(tags = "sysUser管理")
@RestController
@RequestMapping(value = "sysUser", produces = "application/json; charset=utf-8")
public class SysUserController {@ApiOperation("参数校验测试")@ApiImplicitParam(name = "sysUser", required = true)@PostMapping("test")public Result<SysUser> test(@RequestBody SysUser sysUser) {return AjaxResult.success(sysUser);}@ApiOperation("接口测试")@ApiImplicitParams({@ApiImplicitParam(name = "name", required = true)})@GetMapping("test2")public Result<String> test2(@RequestParam("name") String name) {return AjaxResult.success("OK: " + name);}}

访问测试

浏览器输入:http://IP:端口/doc.html

常用注解

@Api(tags = "sysUser管理")
// 放在controller类上,描述当前controller
@ApiOperation("接口测试")
// 放在接口上,描述当前接口
@ApiImplicitParam(name = "sysUser", required = true)
// 放在接口上,描述当前接口参数--->单个参数时
@ApiImplicitParams({@ApiImplicitParam(name = "name", required = true),@ApiImplicitParam(name = "age", required = true)
})
// 放在接口上,描述当前接口参数--->多个参数时
@ApiModel("SysUser实体类")
// 放在实体类上,描述当前实体类
@ApiModelProperty(value = "id", required = true)
// 放在实体类的属性上,描述当前属性

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

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

相关文章

zs6d配置-1

// 由于本人对zero-shot比较敏感&#xff0c;于是看见了这个字眼后就去找了篇文章打算试试这东西能不能行 https://github.com/PhilippAuss/ZS6DC14 error: Microsoft Visual C 14.0 or greater is required. Get it with “Microsoft C Build Tools“就按他说的&#xff0c;…

共享购模式:数据驱动的消费增值新体验

共享购模式是一种创新的消费增值系统&#xff0c;它通过整合商家资源&#xff0c;实现商家让利和消费者增值的双重目标。以下是该模式的详细收益分析&#xff1a; 商家让利机制&#xff1a;商家入驻平台需持有价值500元的共享积分作为保证金&#xff0c;确保交易的诚信与质量。…

LabVIEW液压伺服压力机控制系统与控制频率选择

液压伺服压力机的控制频率是一个重要的参数&#xff0c;它直接影响系统的响应速度、稳定性和控制精度。具体选择的控制频率取决于多种因素&#xff0c;包括系统的动态特性、控制目标、硬件性能以及应用场景。以下是一些常见的指导原则和考量因素&#xff1a; 常见的控制频率范…

【介绍下Spark MLlib机器学习】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Java实现经纬度坐标转换

一、坐标系统简介 坐标系统&#xff0c;是描述物质存在的空间位置&#xff08;坐标&#xff09;的参照系&#xff0c;通过定义特定基准及其参数形式来实现。 坐标是描述位置的一组数值&#xff0c;按坐标的维度一般分为一维坐标&#xff08;公路里程碑&#xff09;和二维坐标…

electron录制工具-准备录制mask

要求 在录制之前&#xff0c;有个倒计时的蒙层提示&#xff1b; 效果 electron录制工具-倒计时准备录制效果 实现 1、无边框、透明窗口 2、保持窗口层级为最顶层 3、倒计时效果 4、倒计时结束之后修改系统托盘的状态 代码地址 // 创建 无边框、透明窗口&#xff1b;保持窗…

SpringFramework总结

一.SpringFramework介绍 (一)Spring 广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。 Spring 已经不再是一个单纯的应用框架&#xff0c;而是逐渐发展成为一个由多个不同子项目&#xff08;模块&#xff09;组成的成熟技术&#xff0c;例如 Spring Frame…

【机器学习系列】“购物篮分析入门:使用Apyori库进行关联规则挖掘”

目录 一、关联分析介绍 关键概念&#xff1a; 1. 支持度&#xff08;Support&#xff09; 2. 置信度&#xff08;Confidence&#xff09; 3. 提升度&#xff08;Lift&#xff09; 4. 频繁项集 5. 关联规则 应用场景&#xff1a; 实现方法 二、导入数据集 额外介绍一…

实用商务口语:“企业文化”用英语怎么说?柯桥学英语去银泰

企业文化是指企业员工共有的一套观念、信念、价值和价值行为准则&#xff0c;以及由此导致的行为模式。 英文可以说&#xff1a;enterprise / company / corporate culture。 情景对话练习01 A:Your company made a lot of achievements last year; how do you make it? 你们…

开源Mamba-2性能狂飙8倍!多个Mamba超强进化体拿下顶会

MambaOut的热度刚过去没多久&#xff0c;Mamba-2就带着它狂飙8倍的性能炸场了。 Mamba-2的核心层是对Mamba的选择性SSM的改进&#xff0c;同等性能下&#xff0c;模型更小&#xff0c;消耗更低&#xff0c;速度更快。与Mamba不同&#xff0c;新一代的Mamba-2再战顶会&#xff…

【AI大模型】Transformers大模型库(二):AutoModelForCausalLM

目录​​​​​​​ 一、引言 二、AutoModelForCausalLM 2.1 概述 2.2 主要功能 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服务。 &#x1f917; Transfo…

SOA的相关概念

1.SOA的定义 面向服务的体系结构&#xff08;Service-Oriented Architecture&#xff0c;SOA&#xff09;&#xff0c;从应用和原理的角度看&#xff0c;目前有两种业界公认的标准定义。 从应用的角度定义&#xff0c;可以认为SOA是一种应用框架&#xff0c;它着眼于日常的业务…

【Python机器学习】预处理对监督学习的作用

还是用cancer数据集&#xff0c;观察使用MinMaxScaler对学习SVC的作用。 首先&#xff0c;在原始数据上拟合SVC&#xff1a; cancerload_breast_cancer() X_train,X_test,y_train,y_testtrain_test_split(cancer.data,cancer.target,random_state0 ) svmSVC(C100) svm.fit(X_t…

推荐个 Edge/Chrome/Firefox 都支持的 IP 定位查询扩展

作为一个博客站长&#xff0c;对 IP 地址应该都不陌生&#xff0c;可以说是跟站长的工作是息息相关的&#xff0c;反正明月几乎每天都会面临 IP 查询、定位的需要&#xff0c;今天让明月给找到了一个叫”IP 定位查询“的浏览器扩展&#xff0c;在 Edge 和 Firefox 下体验后感觉…

多卡聚合智能融合通信设备在无人机无线视频传输应用

无人驾驶飞机简称“无人机”&#xff0c;是利用(无线电)遥控设备和自备的程序控制装置操纵的不载人飞行器&#xff0c;现今无人机在航拍、农业、快递运输、测绘、新闻报道多个领域中都有深度的应用。 无人机无线视频传输保证地面人员利用承载的高灵敏度照相机可以进行不间断的画…

【蓝桥杯2025备赛】分巧克力

【蓝桥杯2025备赛】分巧克力 [蓝桥杯 2017 省 AB] 分巧克力 题目描述 儿童节那天有 K K K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N N N 块巧克力&#xff0c;其中第 i i i 块是 H i W i H_i \times W_i Hi​Wi​ 的方格组成的长方形…

自动化执行任务的脚本代码分享!

在当今信息化社会&#xff0c;自动化执行任务的脚本代码已经成为提高工作效率、减少人工错误的重要工具。 无论是数据处理、文件操作&#xff0c;还是网络请求、系统监控&#xff0c;脚本代码都能帮助我们实现自动化操作&#xff0c;从而释放人力&#xff0c;让我们有更多时间…

LeetCode-103. 二叉树的锯齿形层序遍历【树 广度优先搜索 二叉树】

LeetCode-103. 二叉树的锯齿形层序遍历【树 广度优先搜索 二叉树】 题目描述&#xff1a;解题思路一&#xff1a;层序遍历&#xff0c;唯一区别就是ans.append(level[::-1] if len(ans) % 2 else level)背诵版&#xff1a;解题思路三&#xff1a;0 题目描述&#xff1a; 给你二…

网络层-IP协议 二

一、网段划分 为了进行组网,把一个IP地址,分成了两个部分: 网络号 主机号 例如:192.168.2.100 这个IP地址中,前面一部分 : 192.168.2就是我们的网络号 后面一部分 100就是我们的主机号. 家用宽带来说,一般默认就是前面三个字节是网络号,主机号的范围就表示局域网中可以有…

计数排序(简略概括)

介绍 通过数组&#xff0c;将对应的数存放在新数组对应的下标位置&#xff0c;遇到重复的数就1. 然后遍历数组将每个数存放到原数组中 实现 找到最大的数和最小的数&#xff0c;最小的数为下标0的位置&#xff0c;最大的数与最小的数的差值为数组大小 代码 // 计数排序 v…