Spring MVC 整合Swagger的一些问题总结

本文记录了在SpringMVC项目中整合Swagger时遇到的两大常见问题及其解决方案。一是项目启动正常但未显示API说明,原因为Spring配置中排除了@Controller注解,导致Swagger无法识别相关注解;二是页面提示无法读取swaggerJSON,解决方法为正确配置swagger的index.html文件中的URL。

在做Spring MVC 整合swagger的时候,遇到的两个问题:

第一个问题

在网上找了一些Spring MVC 和Swagger的例子,照着一步步的配置,结果,到最后,项目都起来了,没有任何问题,

但是就是没有出现网上的效果,没有出现Controller里写的那些API说明,

效果是这样的:

原因:

在Spring的配置文件中,对包管理的配置是这样写的:

1 <context:component-scan base-package="com.koonet.qxtn" use-default-filters="true">
2   <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
3</context:component-scan>

也就是说,这里声明了Spring来管理指定包里的注解,

但是呢,Spring不认Swagger的注解,所以,才导致出现上面的情况。

解决:

将指定Spring管理注解的去掉,直接写成这样:

1 <context:component-scan base-package="com.koonet.qxtn"/>

这样的话,swagger的注解也能被引入的swagger相关类识别,最终完成一系类操作,展现出我们想要的。(这里只是我的推测)

 

 

第二个问题

项目配置没有问题,启动不报错,但是页面显示的是

Can't read swagger JSON from http://localhost:8080/swagger/api-docs

字面意思好理解,就是无法读取swagger的json数据,

那么为什么会这样呢?                                                                              

修改swagger的index.html里的

url = "http://petstore.swagger.io/v2/swagger.json";

是修改成

url = "http://{ip}:{port}/{projectName}/api-docs";

但是呢,使用IDEA部署的项目是没有项目名的,也就是说,在本地部署的话,直接写成

url = "http://localhost:8080/api-docs";

就没有问题了。

这是我在学习使用swagger时,遇到的两个问题,这里做一个记录。




转载于:https://www.cnblogs.com/Darlin356230410/p/8073630.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值