注意:
下面介绍的方法,我在本地idea运行没有问题,打包也能成功,但是上线到云服务器运行会启动失败报错:

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Lcom/example/swagger2_demo/bean/User;

暂时未解决这个问题,如要使用请自行打包运行验证考虑是否使用!

参考文章

https://blog.csdn.net/q873297050/article/details/87895145

springboot swagger2 post请求map/json参数 和 map/json返回 自定义map注解实现

注意:

  • 只支持post请求,如需其他get update delete请求方法用swagger2原生的注解。
    如果不是post请求用到这个自定义map注解,会报错,如下
Failed to start bean 'documentationPluginsBootstrapper'; 
nested exception is com.google.common.util.concurrent.ExecutionError: 
java.lang.LinkageError: loader (instance of  com/example/swagger2_demo/config/swagger2/params/MapApiReader): 
attempted  duplicate class definition for name: "Class_xxx_HparamsJson"
  • web controller 类要有注解 @RequestMapping 和 @RestController ,原因在MyBeanPostProcessor类中有用到,看代码就知道了。
  • 集成到自己项目中,需要改 Swagger2 、SwaggerMapContext 和 SwaggerRetMapContext中的package 路径,不然扫描不到。
  • ApiJsonProperty 和 ApiReturnJsonPro 的key 值要小写开头,如果大写开头,会生成2个字段,如key为Account ,那么会生成 Account 和 account

废话不多说,上源码:
链接:https://pan.baidu.com/s/1MAZE0C4pfhFc_ViPBqmodw
提取码:p43q

运行后 浏览器输入 http://localhost:8095/swagger-ui.html 打开在线文档

test2接口 post参数和返回的map注解 如下图:
在这里插入图片描述
生成的在线文档如下:
在这里插入图片描述

注意:mvn打包需要注意本地jdk安装的rt.jar 包路径,我提供的代码中rt.jar路径是基于我当前安装的jdk路径,读者需要对比自己的jdk路径做修改

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 2 个月前
8c391e04 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐