需要规定
为了缩小正文和 swagger 注解的反复定义, 通过标准正文, 让 swagger 能够通过 javadoc 来产生
替换 @Api、@ApiOperation、@ApiModel、@ApiModelProperties 等注解
只是对 swagger 的扩大,如果有 swagger 注解,以注解为准
运行环境
springboot2.1.7
jdk1.8
设计思维
零碎构思
编译实现的 class 里没有正文的,所以正文信息只有在编译代码时存储起来
swagger 自身是通过注解实现接口定义形容等加载的,现将代码正文生成 json 格局, 利用 swagger 扩大在启动我的项目时通过 json 进行加载到 swagger 中
须要配合自定义的 javadoc-json-maven-plugin 先将正文生成 json 文件
关键技术与算法
生成 javadoc.json 文件
com.example.CommentToJsonMain(已做成 maven 插件, 这里原始文件可做测试)
插件: https://github.com/zhaozhiwei…
swagger 扩大代码
com.example.SpringbootSwaggerJavadocApplication 启动即可失效
类定义: com.example.plugin.CommentApiBuilder
办法定义: com.example.plugin.CommentOperationBuilder
类代码正文标准
/**
* @Title: PersonController
* @Package: com/example/springbootcache/controller/PersonController.java
* @Description: 用户信息接口
* @author: zhaozhiwei
* @date: 2022/10/25 下午 8:23
* @version: V1.0
*/
办法代码正文标准
/**
* @date: 2022/10/25- 上午 10:19
* @author: zhaozhiwei
* @method: findByID
* @param id : 惟一 id
* @return: com.lx.demo.springbootcache.domain.Person
* @Description: 依据 id 获取用户信息
* 获取十次,只有第一次是读库,后续都是取缓存
* 间接删掉 redis 缓存里的内容,依然能够获取数据,并且走缓存,此时获取的是服务缓存 ehcache 中的信息
* seq 10 |xargs -i curl -XGET 'http://localhost:8080/persons/2'
*/
根本解决流程
零碎流程图
代码
https://github.com/zhaozhiwei…
参考
swagger 扩大
https://github.com/hadix-lin/…
https://blog.csdn.net/ydongha…
https://blog.csdn.net/baiihcy…
https://blog.csdn.net/qq_1762…