前言
之前我自己学习使用了Swagger这个插件,感觉很好用,但是之前是在springboot里面整合的,的确十分的方便,只需要导入依赖,编写一个配置类把它引入到spring容器之中就行了.
有需要的可以去参考这篇博客: 前后端接口测试神器Swagger基本使用
但是因为当前公司的项目是用的SSM框架写的,之后会开始用springboot框架写,所以就需要在SSM框架里面配置Swagger.但是在这个过程中还是碰到了几个比较难搞的点,所以就记录下来.
步骤
导入依赖
这一步和之前的springboot其实是一样的,在pom.xml文件里面添加以下的依赖就行了.
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
编写配置类
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("瓤瓤") .select() .apis(RequestHandlerSelectors.basePackage("你所要扫描的controller包")) .build(); } private ApiInfo apiInfo(){ Contact contact=new Contact("瓤瓤","https://blog.csdn.net/lovely__RR","2293557957@qq.com"); return new ApiInfo( "瓤瓤", "你我山巅自相逢,予你与我遇清风", "1.0", "https://swagger.io/", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<>() ); } }
下载swagger-ui资源
大家直接点击链接下载即可
链接:https://pan.baidu.com/s/1vvQtJsysYEKS-i8ZgcA31w
提取码:67da
下载完成之后将解压文件将dist文件下面的所有文件全部复制到 WEB-INF 文件下面就行了如下图所示:
配置springMVC.xml文件
主要就是将我们的swagger配置文件注入到spring容器中,否则是无法生效的.
<!--重要!将你的SwaggerConfig配置类注入--> <bean class="czams.admin.controller.swagger.SwaggerConfig"/> <!--重要!配置swagger资源不被拦截--> <mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/"/>
配置web.xml文件
这一步其实只要你是之前正常些的SSM项目,这段代码,你里面肯定是有的
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
只要类似的就行
修改url地址
这时候我们尝试去访问该网页,具体的网址需要根据你的项目名来定.
http://localhost:8089/swagger/index.html
或者http://localhost:8080/swagger-ui.html
后者访问成功的可能性会高一点.
这里可能会出现类似于下面的错误
我们需要去修改该文件的url参数
这里的url默认是http://petstore.swagger.io/v2/swagger.json
我们需要修改成 /v2/api-docs
如果还是不行的话,可能 有下面几个原因
默认端口号是8080,所以最好用8080端口,反正我试了半天,我的问题就是这个,我之前用的是8089端口跑的,但是一直没有出来,试了网上很多的办法,最好瞎碰却解决出来了.
可能是tomcat的解码方式有问题,可以去修改Tomcat的serve.xml文件
加上这段代码
最后我们去访问网页,基本上第二个网址一般能够正常访问了,但是第一个网址可能还是不行,但是至少我们能够使用swagger了,就如下图所示