SSM整合Swagger

简介: SSM整合Swagger

前言


之前我自己学习使用了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 文件下面就行了如下图所示:


20200928153513356.png


配置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

后者访问成功的可能性会高一点.


这里可能会出现类似于下面的错误


20200928162113670.png


我们需要去修改该文件的url参数

20200928162212850.png


这里的url默认是http://petstore.swagger.io/v2/swagger.json

我们需要修改成 /v2/api-docs


如果还是不行的话,可能 有下面几个原因


默认端口号是8080,所以最好用8080端口,反正我试了半天,我的问题就是这个,我之前用的是8089端口跑的,但是一直没有出来,试了网上很多的办法,最好瞎碰却解决出来了.

可能是tomcat的解码方式有问题,可以去修改Tomcat的serve.xml文件


20200928162942771.png


加上这段代码


20200928163016385.png


最后我们去访问网页,基本上第二个网址一般能够正常访问了,但是第一个网址可能还是不行,但是至少我们能够使用swagger了,就如下图所示


20200928163546611.png


相关文章
|
5月前
|
Java API Spring
【一】springboot整合swagger
【一】springboot整合swagger
74 0
|
5月前
|
Java API Spring
Swagger使用-Spring Boot整合Swagger
Swagger使用-Spring Boot整合Swagger
70 0
|
5月前
|
Java API
SpringBoot 整合swagger3.X
SpringBoot 整合swagger3.X
233 0
|
2月前
|
Java API Spring
springboot集成swagger
这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。
|
2月前
|
Java
SpringBoot 配置 Swagger
SpringBoot 配置 Swagger
34 0
|
3月前
springboot-swagger使用
springboot-swagger使用
|
3月前
|
Java 测试技术 API
|
前端开发 Java API
springboot 集成swagger
springboot 集成swagger
119 0
|
Java
Springboot 整合 Swagger 3
Springboot 整合 Swagger 3
210 0
|
XML 前端开发 Java
Springboot整合MyBatisPlus swagger测试
Springboot整合MyBatisPlus swagger测试