前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率实在太低。与新版的swagger3相比swagger2配置更少,使用更加方便。

1685页 Java面试突击核心讲

一、pom文件中引入Swagger3依赖

<dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version>
</dependency>

二、Application上面加入@EnableOpenApi注解

@EnableOpenApi
@SpringBootApplication
@MapperScan(basePackages = {"cn.ruiyeclub.dao"})
public class Swagger3Application {public static void main(String[] args) {SpringApplication.run(Swagger3Application.class, args);}

三、Swagger3Config的配置

@Configuration
public class Swagger3Config {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("Swagger3接口文档").description("更多请咨询服务开发者Ray。").contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();}
}

四、Swagger注解的使用说明

@Api:用在请求的类上,表示对类的说明tags="说明该类的作用,可以在UI界面上看到的注解"value="该参数没什么意义,在UI界面上也看到,所以不需要配置"@ApiOperation:用在请求的方法上,说明方法的用途、作用value="说明方法的用途、作用"notes="方法的备注说明"@ApiImplicitParams:用在请求的方法上,表示一组参数说明@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面name:参数名value:参数的汉字说明、解释required:参数是否必须传paramType:参数放在哪个地方· header --> 请求参数的获取:@RequestHeader· query --> 请求参数的获取:@RequestParam· path(用于restful接口)--> 请求参数的获取:@PathVariable· body(不常用)· form(不常用)    dataType:参数类型,默认String,其它值dataType="Integer"       defaultValue:参数的默认值@ApiResponses:用在请求的方法上,表示一组响应@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息code:数字,例如400message:信息,例如"请求参数没填好"response:抛出异常的类@ApiModel:用于响应类上,表示一个返回响应数据的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)@ApiModelProperty:用在属性上,描述响应类的属性

Controller层的配置:

@Api(tags = "用户信息管理")
@RestController
@RequestMapping("userRecord")
public class UserRecordController extends ApiController {/*** 服务对象*/@Resourceprivate UserRecordService userRecordService;/*** 分页查询所有数据* @param page       分页对象* @param userRecord 查询实体* @return 所有数据*/@ApiOperation("分页查询所有数据")@GetMapping("page")public R selectAll(Page<UserRecord> page, UserRecord userRecord) {return success(this.userRecordService.page(page, new QueryWrapper<>(userRecord)));}/*** 通过主键查询单条数据* @param id 主键* @return 单条数据*/@ApiOperation("通过主键查询单条数据")@GetMapping("{id}")public R selectOne(@PathVariable Serializable id) {return success(this.userRecordService.getById(id));}/*** 新增数据* @param userRecord 实体对象* @return 新增结果*/@ApiOperation("新增数据")@PostMapping("insert")public R insert(@RequestBody UserRecord userRecord) {return success(this.userRecordService.save(userRecord));}/*** 修改数据* @param userRecord 实体对象* @return 修改结果*/@ApiOperation("修改数据")@PutMapping("update")public R update(@RequestBody UserRecord userRecord) {return success(this.userRecordService.updateById(userRecord));}/*** 删除数据* @param idList 主键结合* @return 删除结果*/@ApiOperation("删除数据")@DeleteMapping("delete")public R delete(@RequestParam("idList") List<Long> idList) {return success(this.userRecordService.removeByIds(idList));}
}

五、Swagger界面效果

Swagger的访问路径由port/swagger-ui.html改成了port/swagger-ui/ 或port/swagger-ui/index.html,项目演示代码在springboot-swagger

如果这篇文章对你有帮助的话,记得给我点赞关注走一波,你的鼓励是对我最大的支持!谢谢。

1685页 Java面试突击核心讲

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

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

相关文章

Rust 的智能指针

在 Rust 中&#xff0c;智能指针是一种特殊的数据结构&#xff0c;它不仅存储数据的地址&#xff0c;还提供了额外的功能&#xff0c;如自动内存管理、引用计数等。智能指针在 Rust 中非常重要&#xff0c;因为它们帮助开发者管理内存&#xff0c;同时保持代码的安全性和效率。…

Redis RDB 持久化:原理、触发方式与优缺点全解析

引言 作为 Redis 最经典的持久化机制之一&#xff0c;RDB&#xff08;Redis DataBase&#xff09;凭借高效的快照生成能力和快速的恢复速度&#xff0c;一直是开发者的心头好。但很多人对它的底层原理、触发时机和适用场景仍存在疑惑。今天咱们就对RDB进行全解析&#xff0c;帮…

设计模式精讲 Day 12:代理模式(Proxy Pattern)

【设计模式精讲 Day 12】代理模式&#xff08;Proxy Pattern&#xff09; 文章内容 在软件开发中&#xff0c;代理模式是一种常见的结构型设计模式&#xff0c;它通过引入一个代理对象来控制对真实对象的访问。这种模式不仅能够增强系统的安全性、灵活性和可扩展性&#xff0c…

企业级知识库私有化部署:腾讯混元+云容器服务TKE实战

1. 背景需求分析 在金融、医疗等数据敏感行业&#xff0c;企业需要构建完全自主可控的知识库系统。本文以某证券机构智能投研系统为原型&#xff0c;演示如何基于腾讯混元大模型与TKE容器服务实现&#xff1a; 千亿级参数模型的私有化部署金融领域垂直场景微调高并发低延迟推…

Qt事件系统详解

一、Qt事件系统概述 Qt事件系统是Qt框架中处理用户输入、窗口交互、定时器、异步操作等机制的核心。所有事件均继承自QEvent类&#xff0c;并通过事件循环&#xff08;Event Loop&#xff09;分发到目标对象。 事件系统基本概念 事件(Event)&#xff1a;描述应用程序内部或外…

CPU性能篇-系统中出现大量不可中断进程和僵尸进程怎么办? Day 05

在上下文切换的文章中&#xff0c;学习并分析了系统 CPU 使用率高的问题&#xff0c;剩下的等待 I/O 的 CPU 使用率&#xff08;以下简称为 iowait&#xff09;升高&#xff0c;也是最常见的一个服务器性能问题。今天就来看一个多进程 I/O 的案例&#xff0c;并分析这种情况。 …

ASP.NET Core + Jenkins 实现自动化发布

一、安装Jenkins 我这边服务器是Linux CentOS 7 &#xff0c;使用SSH 登录云服务器后&#xff0c;输入以下命令安装jenkins. sudo wget -O /etc/yum.repos.d/jenkins.repo \https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/red…

Java项目RestfulAPI设计最佳实践

大家好&#xff0c;我是锋哥。今天分享关于【Java项目RestfulAPI设计最佳实践】面试题。希望对大家有帮助&#xff1b; Java项目RestfulAPI设计最佳实践 超硬核AI学习资料&#xff0c;现在永久免费了&#xff01; 设计一个高效、易维护的 Java 项目中的 RESTful API 涉及到一…

FANUC机器人教程:用户坐标系标定及其使用方法

目录 概述 工作站创建 任务描述 用户坐标系标定方法 用户坐标系标定操作 用户坐标系手动测试 用户坐标系在程序中的应用 用户坐标系选择指令介绍 机器人示教编程 仿真运行 仿真案例资源下载 概述 FANUC机器人的用户坐标系&#xff0c;是用户对每个作业空间定义的直…

动态库与静态库【Linux】

程序编译过程 源代码(.cpp) → 预处理(.i) → 编译(.s) → 汇编(.o) → 链接(可执行文件) g -o main.i -E main.cpp 参数说明&#xff1a; 参数功能输出文件类型-E仅预处理.i-S预处理 编译.s-c预处理 编译 汇编.o无完整流程&#xff08;预处理→编译→汇编→链接&…

MySQL MHA 故障转移-VIP

MHA故障转移-VIP #手工在主库添加VIP ifconfig ens33:1 192.168.80.200/24配置VIP脚本 vim /usr/local/bin/master_ip_failoverchmod x /usr/local/bin/#!/usr/bin/env perl use strict; use warnings FATAL > all;use Getopt::Long;my ( $command, $ssh_user, $orig_mast…

Elasticsearch索引字段的类型

在 Elasticsearch 中&#xff0c;索引字段的类型&#xff08;即 Mapping 中的字段类型&#xff09;对搜索和存储性能影响很大。下面是各种常用数据类型的用途及推荐使用场景总结&#xff1a; 1. keyword 类型&#xff08;精确匹配&#xff09; 适合数据&#xff1a; 不需要分词…

kubernetes证书续签-使用kubeadm更新证书(下)

#作者&#xff1a;任少近 文章目录 查看kubelet证书查看kubelet当前所使用的证书 更换 node上的kubelet证书生成node1所需要的kubelet.conf文件生成node2所需要的kubelet.conf文件查看csr 更新 ~/.kube/config 文件重启相关组件 查看kubelet证书 以上少了kubelet的证书&#…

AI智能体长期记忆系统架构设计:从认知模型到生产实践

1 长期记忆:AI智能体的认知基石 1.1 人类记忆与AI记忆的类比 #mermaid-svg-VIPKAFe7VgN4UHFA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-VIPKAFe7VgN4UHFA .error-icon{fill:#552222;}#mermaid-svg-VIPKAFe7V…

快速上手:利用音频大模型与Java提取视频文案

文章目录 1、前言2、需求说明2.1 需求说明2.2 数据准备 3、功能实现3.1 使用视频理解大模型能力3.1.1 三方平台视频在线链接解析3.1.2 三方平台视频内网链接解析3.1.3 三方平台视频转存本地服务 3.2 使用音频识别大模型能力3.2.1 三方平台视频在线链接解析3.2.2 三方平台视频详…

LLM复杂记忆存储-多会话隔离案例实战

导读&#xff1a;在多用户并发的对话系统中&#xff0c;会话隔离问题往往成为开发者面临的技术难题。当数千个用户同时与AI助手交互时&#xff0c;如何确保每个用户的对话历史完全独立&#xff0c;避免数据混淆和隐私泄露&#xff1f; 本文深入剖析了基于RunnableWithMessageHi…

【PX4-AutoPilot教程-TIPS】PX4系统命令行控制台ConsolesShells常用命令(持续更新)

PX4系统命令行控制台 Consoles & Shells 常用命令 查看每个应用程序的堆栈使用情况获取所有可用命令和APP的列表应用程序启动、停止和状态查询查看本地文件系统查看剩余的可用RAM查看工作队列中正在运行的内容以及运行速率查看特定的uORB话题调试uORB话题进行模式切换和故障…

国内优秀wordpress主题推荐

在国内&#xff0c;WordPress 主题市场虽然不如国外那样庞大&#xff0c;但依然有许多优秀且适合中国用户需求的主题。以下是一些经过评估和推荐的国内优秀WordPress主题&#xff0c;涵盖不同类型的网站需求&#xff0c;如博客、企业官网、资源站、社区论坛等。 WP汉主题 WP汉…

第 6 章:进阶话题

第 6 章&#xff1a;进阶话题 过拟合vs欠拟合&#xff1a;模型复杂度和泛化能力的关系 在前面的章节中&#xff0c;我们已经学习了神经网络的基础知识、常见架构和基本训练流程。然而&#xff0c;在实际的深度学习项目中&#xff0c;仅仅掌握这些基础知识是不够的。我们还需要…

4.2_1朴素模式匹配算法

知识总览&#xff1a; 什么是字符串的模式匹配&#xff1a; 主串&#xff1a;想从该串获取结果的串 模式串&#xff1a;想搜索的内容&#xff0c;不一定在主串中能搜到&#xff0c;子串一定能在主串中搜到 字符串模式匹配&#xff1a;在主串找模式串并返回找到的第一个模式串…