前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SSM整合Swagger

SSM整合Swagger

作者头像
萌萌哒的瓤瓤
发布2021-01-13 17:47:21
1.1K0
发布2021-01-13 17:47:21
举报
文章被收录于专栏:java,python,数据结构,算法

前言

之前我自己学习使用了Swagger这个插件,感觉很好用,但是之前是在springboot里面整合的,的确十分的方便,只需要导入依赖,编写一个配置类把它引入到spring容器之中就行了.

有需要的可以去参考这篇博客: 前后端接口测试神器Swagger基本使用

但是因为当前公司的项目是用的SSM框架写的,之后会开始用springboot框架写,所以就需要在SSM框架里面配置Swagger.但是在这个过程中还是碰到了几个比较难搞的点,所以就记录下来.

步骤

导入依赖

这一步和之前的springboot其实是一样的,在pom.xml文件里面添加以下的依赖就行了.

代码语言:javascript
复制
 <!-- 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>

编写配置类

代码语言:javascript
复制
@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容器中,否则是无法生效的.

代码语言:javascript
复制
 <!--重要!将你的SwaggerConfig配置类注入-->
    <bean class="czams.admin.controller.swagger.SwaggerConfig"/>
    <!--重要!配置swagger资源不被拦截-->
    <mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/"/>

配置web.xml文件

这一步其实只要你是之前正常些的SSM项目,这段代码,你里面肯定是有的

代码语言:javascript
复制
<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

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

  1. 默认端口号是8080,所以最好用8080端口,反正我试了半天,我的问题就是这个,我之前用的是8089端口跑的,但是一直没有出来,试了网上很多的办法,最好瞎碰却解决出来了.
  2. 可能是tomcat的解码方式有问题,可以去修改Tomcat的serve.xml文件

加上这段代码

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 步骤
    • 导入依赖
      • 编写配置类
        • 下载swagger-ui资源
          • 配置springMVC.xml文件
            • 配置web.xml文件
              • 修改url地址
              相关产品与服务
              容器服务
              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档