养成习惯,先赞后看!!!
前言
之前我自己学习使用了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了,就如下图所示
都看到这儿了,如果对你有帮助的话,还希望能关注我的公众号,新人博主需要你的支持.