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

在做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