SpringBoot+SmartDoc - unknown

news/2025/11/23 16:41:05/文章来源:https://www.cnblogs.com/ChenQ2/p/19260832

SpringBoot+SmartDoc

简介

SmartDoc是一款支持Java Rest Api Java WebSocketApache Dubbo RPCgRPC接口文档生成的工具。它对环境的需求是Mavne3.8+以及JDK1.8+

SmartDoc率先提出了基于java泛型定义来推导接口文档的概念,它完全依赖于接口的源代码进行分析和生成文档,无需像Swagger那样在业务代码中添加任何注解,只需按照JavaDoc的标准进行编写注释,SmartDoc即可生成简洁明了的MarkdownHTML5Pastman Collection2.0+OpenAI3.0格式的文档。

本文是SpringBoot单模块基于官方文档Mavne插件的形式使用。

官方文档中还表明了可以是用Maven依赖的方式以及Spring Cloud的方式使用。

Mavne插件

在SpringBoot的启动类中的pom.xml加入依赖。

  • Mavne插件的版本是和Mavne依赖版本是一致的,笔者是在Mavne仓库中com.ly.smart-doc查看Maven依赖的版本得知插件的版本的。
 <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- -->
<plugin><groupId>com.ly.smart-doc</groupId><artifactId>smart-doc-maven-plugin</artifactId><version>3.1.2</version><configuration><configFile>./src/main/resources/smart-doc.json</configFile><projectName>${project.description}</projectName><includes><!-- 加载第三方包的模板 --><!-- <include>com.baomidou:mybatis-plus-extension</include>  --></includes></configuration><executions><execution><!--如果不需要在执行编译时启动smart-doc,则将phase注释掉-->
<!--                        <phase>compile</phase>-->
<!--                        <goals>-->
<!--                            &lt;!&ndash;smart-doc提供了html、openapi、markdown等goal,可按需配置&ndash;&gt;-->
<!--                            <goal>markdown</goal>-->
<!--                        </goals>--></execution></executions>
</plugin>

配置文件

在SpringBoot的启动类中的resources文件下建立一个smart-doc.json文件

image-20251123150324630

{"outPath": "./src/doc" //文档输出位置,更多配置文件请查看官方文档
}

SpringBoot文件

在SpringBoot中,所有的入参和返回参数请使用对象的方式。

/*** <P>统一结果返回封装</P>* @param <T>*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> implements Serializable {@Serialprivate static final long serialVersionUID = 4105682081252678513L;/*** <P>提示消息</P>*/private String message;/*** <P>返回状态码</P>*/private int status;/*** <P>数据封装</P>*/private T data;/*** <P>数据字典</P>*/private Object dict;}

Controller

/*** <P>用户认证</P>* @author unknown* @since 2025/11/18 11:41*/
@RestController
@RequestMapping("/auth")
@RequiredArgsConstructor
public class AuthController {
/*** <P>管理员注册</P>** @param manageRegister 管理员信息* @return Result*/
@PostMapping("manage-register")
public Result<?> manageRegister(@RequestBody @Validated ManageRegister manageRegister) throws Exception {LoginToken loginToken = manageService.manageRegister(manageRegister);return ResultBuilder.successResult(loginToken);
}/*** <P>管理员登录</P>** @param phone    手机号* @param password 密码* @return Result*/
@PostMapping("manage-login")
public Result<?> manageLogin(@RequestParam("phone") @NotNull String phone,@RequestParam("password") @NotNull String password) throws Exception {LoginToken loginToken = manageService.manageLogin(phone, password);return ResultBuilder.successResult(loginToken);
}
}

生成文档

  • 在Mavne插件中选择一种格式来生成文档,文档的位置在resources文件下smart-doc.json文件中有定义

image-20251123151407655

查看文档

  • 生成的文档内容如下,我选择的是markdow格式,因为笔记也是此格式,方便嵌入文档。

<P>管理员注册</P>

URL: /auth/manage-register

Type: POST

Author: unknown

Content-Type: application/json

Description:

管理员注册

Body-parameters:

Parameter Type Required Description Since Example
userName string true 名称 -
phone string true 手机号 -
password string true 密码 -

Request-example:

curl -X POST -H "Content-Type: application/json" -i '/auth/manage-register' --data '{"userName": "","phone": "","password": ""
}'

Response-fields:

Field Type Description Since Example
message string

提示消息

-
status int32

返回状态码

- 0
data object

数据封装

-
dict object

数据字典

-

Response-example:

{"message": "","status": 0,"data": {},"dict": {"object": "any object"}
}

<P>管理员登录</P>

URL: /auth/manage-login

Type: POST

Author: unknown

Content-Type: application/x-www-form-urlencoded

Description:

管理员登录

Query-parameters:

Parameter Type Required Description Since Example
phone string true 手机号 -
password string true 密码 -

Request-example:

curl -X POST -i '/auth/manage-login?phone=&password='

Response-fields:

Field Type Description Since Example
message string

提示消息

-
status int32

返回状态码

- 0
data object

数据封装

-
dict object

数据字典

-

Response-example:

{"message": "","status": 0,"data": {},"dict": {"object": "any object"}
}

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

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

相关文章

iptables怎样保护Linux服务器免受攻击

iptables是Linux系统中一款强大的防火墙工具,通过设置规则来过滤和控制网络流量,从而保护服务器免受攻击。以下是iptables保护Linux服务器免受攻击的方法: 基础配置允许本地回环接口流量:iptables -A INPUT -i lo …

毕业论文神器!9款免费AI工具推荐,轻松搞定论文写作

本文分享9款免费AI工具助力论文写作。2025年11月,作者写论文陷入困境,经室友介绍接触到[图灵论文AI写作助手](https://turingpub.com/?df=cnblogs_ipapers)。文中详细介绍各工具,如前者可30分钟生成5万字初稿,覆盖…

2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务详情

2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务详情 行业背景与发展趋势 随着社会经济的发展和人们生活水平的提高,中国宠物医疗行业正迎来快速发展期。作为长三…

2025 年 11 月 PFA 隔膜阀厂家推荐排行榜,耐腐蚀 PFA 隔膜阀,高纯应用隔膜阀,实验室级隔膜阀,化工专用隔膜阀品牌精选

2025 年 11 月 PFA 隔膜阀厂家推荐排行榜:耐腐蚀、高纯应用与实验室级隔膜阀品牌精选 在半导体、生物医药、精细化工等高技术产业中,流体输送系统的可靠性与洁净度直接决定了生产质量与工艺安全。PFA(全氟烷氧基烷烃…

6、JDBC-实体类和ORM

1、实体类和ORM2、ORM思想封装单个对象3、ORM思想封装集合 以上仅供参考,如有疑问,留言联系

4、JDBC-PreparedStatement-CRUD

1、查询单行单列2、查询单行多列3、查询多行多列4、新增5、修改6、删除 以上仅供参考,如有疑问,留言联系

2025 年 11 月精密机床厂家权威推荐榜:滚珠丝杠磨床,精密丝杆旋风铣床,碳电极加工设备,螺纹磨床,高效稳定与精度保障的工业利器

2025 年 11 月精密机床厂家权威推荐榜:滚珠丝杠磨床,精密丝杆旋风铣床,碳电极加工设备,螺纹磨床,高效稳定与精度保障的工业利器 随着制造业向高端化、智能化转型,精密机床作为工业母机的重要性日益凸显。滚珠丝杠…

2025 年 11 月彩钢瓦翻新厂家实力推荐榜:专业喷漆保养与厂房翻新一站式解决方案,持久防护高效省心!

2025 年 11 月彩钢瓦翻新厂家实力推荐榜:专业喷漆保养与厂房翻新一站式解决方案,持久防护高效省心! 随着工业建筑使用年限的增长,彩钢瓦作为常见的工业厂房建筑材料,其维护保养需求日益凸显。彩钢瓦翻新、喷漆保养…

2025 年 11 月石墨坩埚加工设备厂家推荐排行榜,石墨电极加工设备,石墨接头加工设备,高效耐高温石墨制品加工设备公司精选

2025 年 11 月石墨坩埚加工设备厂家推荐排行榜,石墨电极加工设备,石墨接头加工设备,高效耐高温石墨制品加工设备公司精选 石墨材料因其优异的耐高温性、导电性和化学稳定性,在冶金、电子、航空航天等领域得到广泛应…

算法学习——寻找两个正序数组中位数

寻找两个正序数组中位数 这题难度比较大,记一下详细的思路 由于灵神的解析里面写的数组名字是a和b,题目里面又是nums1和nums2,我下面写的名字两种都有写,知道是一样的就行。 首先明确中心思想:将两个数组内的元素…

5、JDBC-常见问题

1、资源管理,及时释放资源2、sql语法异常3、sql未设置参数4、账号或密码错误5、通信异常以上仅供参考,如有疑问,留言联系

博客3

作业①: 要求:指定一个网站,爬取这个网站中的所有的所有图片,例如:中国气象网(http://www.weather.com.cn)。实现单线程和多线程的方式爬取。通过解析htlm,找到所有<img>标签,爬取所有图片 。 完整代码:…

语音频谱特征提取(python)

注:FFT(快速傅里叶变换);DFT(离散傅里叶变换);DCT(离散余弦变换);VMD(变分模态分解) 音频文件读取: import torchaudio def open_audio(audio_file): # Load an audio file.sig, sr = torchaudio.load(a…

深入解析:flink实验三:实时数据流处理(踩坑记录)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

触觉感知机器人如何规划与执行动作

本文详细介绍了一种新型机器人系统如何通过触觉传感技术实现复杂操作。系统配备六维力传感器和专用末端工具,能够在受限空间中进行物品抓取和存放,结合计算机视觉与深度学习算法实现精确的运动规划和控制。触觉感知机…

2025 年 11 月江苏省骨科医院权威推荐榜:专科诊疗、医保定点、工伤定点,专业骨科服务与高效医疗保障之选

2025 年 11 月江苏省骨科医院权威推荐榜:专科诊疗、医保定点、工伤定点,专业骨科服务与高效医疗保障之选 骨科疾病作为常见病和多发病,已成为影响人民群众生活质量的重要因素。随着人口老龄化进程加快和运动损伤增多…

2025 年 11 月智能配电系统厂家权威推荐榜:配电柜/配电箱/开关柜源头工厂,高效节能与稳定安全技术深度解析

2025 年 11 月智能配电系统厂家权威推荐榜:配电柜/配电箱/开关柜源头工厂,高效节能与稳定安全技术深度解析 随着工业4.0和智能电网建设的深入推进,智能配电系统作为电力能源管理的核心环节,正迎来技术革新与产业升…

iptables下MySQL安全防护怎么做

在使用iptables进行MySQL安全防护时,主要目标是限制不必要的网络访问,只允许特定的IP地址或IP段访问MySQL服务器,并禁用root用户的远程登录。以下是一些具体的步骤和建议:允许特定IP地址或IP段访问MySQL:使用ipta…

iptables下MySQL安全设置有哪些

在使用iptables进行MySQL安全设置时,主要目标是限制不必要的网络访问,保护数据库服务器免受潜在攻击。以下是一些建议的安全设置:默认拒绝所有外部访问:在iptables中,首先设置默认策略为拒绝所有外部对MySQL端口的…

2025 年 11 月防水公司权威推荐榜:商铺装修防水、别墅补漏防水、厂房防潮防水,专业施工与持久防护口碑之选

2025 年 11 月防水公司权威推荐榜:商铺装修防水、别墅补漏防水、厂房防潮防水,专业施工与持久防护口碑之选 防水工程作为建筑领域的关键环节,直接影响建筑物的使用寿命与安全性能。随着建筑行业对防水标准要求的不断…