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

注意:
下面介绍的方法,我在本地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路径做修改

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值