当前位置: 首页 > news >正文

SpringBoot+SmartDoc - unknown

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.jsqmd.com/news/48442/

相关文章:

  • iptables怎样保护Linux服务器免受攻击
  • 毕业论文神器!9款免费AI工具推荐,轻松搞定论文写作
  • 2025 年 11 月南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,覆盖南通宠物医院电话地址及服务详情
  • 2025 年 11 月 PFA 隔膜阀厂家推荐排行榜,耐腐蚀 PFA 隔膜阀,高纯应用隔膜阀,实验室级隔膜阀,化工专用隔膜阀品牌精选
  • 6、JDBC-实体类和ORM
  • 博客3
  • 2025 年 11 月精密机床厂家权威推荐榜:滚珠丝杠磨床,精密丝杆旋风铣床,碳电极加工设备,螺纹磨床,高效稳定与精度保障的工业利器
  • 2025 年 11 月彩钢瓦翻新厂家实力推荐榜:专业喷漆保养与厂房翻新一站式解决方案,持久防护高效省心!
  • 2025 年 11 月石墨坩埚加工设备厂家推荐排行榜,石墨电极加工设备,石墨接头加工设备,高效耐高温石墨制品加工设备公司精选
  • 算法学习——寻找两个正序数组中位数
  • 5、JDBC-常见问题
  • 语音频谱特征提取(python)
  • 深入解析:flink实验三:实时数据流处理(踩坑记录)
  • 触觉感知机器人如何规划与执行动作
  • 2025 年 11 月江苏省骨科医院权威推荐榜:专科诊疗、医保定点、工伤定点,专业骨科服务与高效医疗保障之选
  • 2025 年 11 月智能配电系统厂家权威推荐榜:配电柜/配电箱/开关柜源头工厂,高效节能与稳定安全技术深度解析
  • iptables下MySQL安全防护怎么做
  • iptables下MySQL安全设置有哪些
  • 2025 年 11 月防水公司权威推荐榜:商铺装修防水、别墅补漏防水、厂房防潮防水,专业施工与持久防护口碑之选
  • SHOW STATUS LIKE Aborted_connects; 这个连接是啥意思
  • 2025 年 11 月无锡公考/考编培训机构权威推荐榜:事业单位与央企国企招录培训实力解析及口碑优选指南
  • 人工智能之编程进阶 Python高级:第十一章 过渡项目
  • CF2122
  • 《d2l Chapter4 多层感知机基础内容》
  • 洛谷P2678题解
  • 【JVM】详解 Class类文件的结构 - 指南
  • 实验3_CPP
  • longchain4j 学习系列(4)-mcp调用
  • Java 学习路线可按「基础→进阶→实战→架构」四阶段推进
  • Jetson Orin Nano super -2 烧录概念及必要性