Springboot2.X版本配置Swagger2

Springboot2.X版本配置Swagger2,第1张

为什么要引入Swagger?

有过后台开发和前端联调的人都会被接口文档折磨,更新不及时,文档和代码不一致,无法调试,swagger就是为了解决这个问题。

看下swagger官方介绍

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

如此好的利器,怎么在后台框架中快速集成呢?

第一步、添加maven依赖

需要在系统的pom中添加如下依赖:

第二步、添加swagger配置文件

第三步、测试

浏览器输入:http://localhost:8080/swagger-ui.html ,能测试生成的api是否可用。

总结

很好用的开源框架,集成也很简单,建议大家在工程中使用,能够快速开发,减少前后端沟通api的时间成本。

1.问题描述:

      使用alibaba微服务体系搭建的项目,模块管理使用的maven,给项目引入swagger做接口文档,启动时报错,报错信息如下:

2.问题解决

升级guava版本为20.0以上。

3.问题排查思路

首先,查看错误日志,错误日志中英文的大体翻译为,“尝试调用了一个不存在方法,发生的位置在 DefaultModelDependencyProvider类中,下面这个方法不存在,可能方法存在....,guava-19.0.jar包中"

然后从错误日志中我们就可以分析出,由于guava-19.0这个jar引起的,并且报出的错误是某个方法不存在,那么我们就可以考虑到是这个jar的版本太低了,但是和swagger有什么关系那?那这个时候我们可以想到swagger有没有使用guava,打开编译器,查看swagger的包依赖关系:

使用idea的可以这样 *** 作,右侧---》maven--->选中需要分析依赖的项目---》maven最上方有个show depenceies--->然后打开下面这张图--》左上角有个有 show conflicts--》红线就是有冲突的依赖--》放大就会发现如第二张图 swagger也依赖了guava,并且要求20.0的版本。

4.根本原因

maven的父子模块包依赖机制导致,父子项目依赖关系如下:

我们的项目就是在 父项目中引入的swagger,里面的swagger自己引入了20.0以上版本的guava使用,但是我们在子项目中又添加了如下依赖:

导致父项目的guava版本被覆盖成了19.0的低版本,所以无法找到swagger使用的某个方法了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7984474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存