前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Swagger] Spring MVC 组件配置 之 Swagger整合

[Swagger] Spring MVC 组件配置 之 Swagger整合

作者头像
架构探险之道
发布2019-07-25 15:48:47
1.3K0
发布2019-07-25 15:48:47
举报
文章被收录于专栏:架构探险之道架构探险之道

Spring MVC 组件配置 之 Swagger整合(自定义样式调整)(springmvc-swagger)

- swagger静态资源和SpringMVC项目整合
- 支持自定义样式开发
- 基于swagger2.2.10版本开发

开发环境

- tomcat 7.0.78
- jdk 1.7+
- spring 4.3.13.RELEASE

SwaggerConfig 配置类

package cn.com.showclear.config;import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;/**
* Swagger初始化配置文件
* @author YF-XIACHAOYANG
* @date 2017/12/26 10:13
*/
@EnableWebMvc
@EnableSwagger
@ComponentScan(basePackages = "cn.com.showclear.activiti.controller.data")
public class SwaggerConfig {   private SpringSwaggerConfig springSwaggerConfig;   /**
    * Required to autowire SpringSwaggerConfig
    */
   @Autowired
   public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
   {
       this.springSwaggerConfig = springSwaggerConfig;
   }   /**
    * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
    * framework - allowing for multiple swagger groups i.e. same code base
    * multiple swagger resource listings.
    */
   @Bean
   public SwaggerSpringMvcPlugin customImplementation()
   {
       return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
               .apiInfo(apiInfo())
               .includePatterns(".*?");
   }   private ApiInfo apiInfo()
   {
       ApiInfo apiInfo = new ApiInfo(
               "Scooper Activiti REST-API",
               "工作流后台接口测试",
               "My Apps API terms of service",
               "xiazhaoyang@live.com",
               "web app",
               "My Apps API License URL");
       return apiInfo;
   }
}

spring-mvc.xml

<!-- 将 springSwaggerConfig加载到spring容器 -->
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
<!-- 将自定义的swagger配置类加载到spring容器 -->
<bean class="cn.com.showclear.config.SwaggerConfig" />
<!-- don't handle the static resource -->
<mvc:default-servlet-handler></mvc:default-servlet-handler>

spring-servlet.xml

 <!-- 静态资源文件映射,不会被Spring MVC拦截 -->
<mvc:resources mapping="/swagger/**" location="/swagger/" />

web.xml

<!-- 配置Spring核心控制器 -->
<servlet>
   <servlet-name>springmvc</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <!--可以不配置.默认所对应的配置文件是WEB-INF下的{servlet-name}-servlet.xml,这里便是:spring-servlet.xml
   -->
   <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:/config/spring/spring-servlet.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>
<!--这里可以用 / 但不能用 /*,拦截了所有请求会导致静态资源无法访问,所以要在spring-servlet.xml中配置mvc:resources
   -->
<servlet-mapping>
   <servlet-name>springmvc</servlet-name>
   <url-pattern>/</url-pattern>
</servlet-mapping>

index.html

/*添加样式*/
<style type="text/css">
.hide{
 display:none;
}
</style>
/*调整路径*/
url = "/scooper-activiti/api-docs";
/*隐藏头部*/
<div id='header' class="hide">

maven 依赖

<!--swagger-->
<dependency>
   <groupId>com.mangofactory</groupId>
   <artifactId>swagger-springmvc</artifactId>
   <version>0.9.5</version>
</dependency><dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-annotations</artifactId>
   <version>2.4.4</version>
</dependency><dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-databind</artifactId>
   <version>2.4.4</version>
</dependency><dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>2.8.9</version>
</dependency>

项目目录结构

REFRENCE

1、swagger整合
https://www.cnblogs.com/jtlgb/p/6734177.html
https://www.2cto.com/kf/201604/499072.html
http://blog.csdn.net/hayre/article/details/51027201
http://www.mamicode.com/info-detail-525592.html2、Can't read swagger JSON from http...
http://blog.csdn.net/shecanwin/article/details/55667102
http://blog.csdn.net/xyw591238/article/details/519391113、No qualifying bean of type 'com.mangofactory.swagger.configuration.SpringSwaggerConfig' available: ...
https://www.cnblogs.com/driftsky/p/4952918.html4、swagger文件上传的写法
http://blog.csdn.net/qq_23167527/article/details/78559096

swagger静态资源文件下载

1、版本下载列表
https://github.com/Yiyuery/swagger-ui2、2.2.10下载链接
https://github.com/swagger-api/swagger-ui/tree/v2.2.10

注意:swagger 版本选择 2.0+ 版本 [2.2.10] 效果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构探险之道 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring MVC 组件配置 之 Swagger整合(自定义样式调整)(springmvc-swagger)
    • 开发环境
      • SwaggerConfig 配置类
        • spring-mvc.xml
          • spring-servlet.xml
            • web.xml
              • index.html
                • maven 依赖
                  • REFRENCE
                    • swagger静态资源文件下载
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档