swagger是什么:

[plain] view plaincopyprint?
  1. Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。本文简单介绍了在项目中集成swagger的方法和一些常见问题。如果想深入分析项目源码,了解更多内容,见参考资料。
  2. Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

将swagger集成到springmvc项目中去:

首先添加swagger依赖,作者用的maven管理:

[html] view plaincopyprint?
  1. <!-- swagger -->
  2. <dependency>
  3. <groupId>com.mangofactory</groupId>
  4. <artifactId>swagger-springmvc</artifactId>
  5. <version>1.0.2</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.fasterxml.jackson.core</groupId>
  9. <artifactId>jackson-core</artifactId>
  10. <version>2.5.1</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.fasterxml.jackson.core</groupId>
  14. <artifactId>jackson-databind</artifactId>
  15. <version>2.5.1</version>
  16. </dependency>
  17. <dependency>
  18. <groupId>com.fasterxml.jackson.core</groupId>
  19. <artifactId>jackson-annotations</artifactId>
  20. <version>2.5.1</version>
  21. </dependency>

创建自定义swagger初始化配置文件:

[java] view plaincopyprint?
  1. package com.yrok.swagger;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.context.annotation.Bean;
  4. import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
  5. import com.mangofactory.swagger.models.dto.ApiInfo;
  6. import com.mangofactory.swagger.plugin.EnableSwagger;
  7. import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
  8. @EnableSwagger
  9. public class SwaggerConfig {
  10. private SpringSwaggerConfig springSwaggerConfig;
  11. /**
  12. * Required to autowire SpringSwaggerConfig
  13. */
  14. @Autowired
  15. public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
  16. {
  17. this.springSwaggerConfig = springSwaggerConfig;
  18. }
  19. /**
  20. * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
  21. * framework - allowing for multiple swagger groups i.e. same code base
  22. * multiple swagger resource listings.
  23. */
  24. @Bean
  25. public SwaggerSpringMvcPlugin customImplementation()
  26. {
  27. return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
  28. .apiInfo(apiInfo())
  29. .includePatterns(".*?");
  30. }
  31. private ApiInfo apiInfo()
  32. {
  33. ApiInfo apiInfo = new ApiInfo(
  34. "springmvc搭建swagger",
  35. "spring-API swagger测试",
  36. "My Apps API terms of service",
  37. "534560449@qq.com",
  38. "web app",
  39. "My Apps API License URL");
  40. return apiInfo;
  41. }
  42. }

将swagger配置类及依赖SpringSwaggerConfig加载到spring容器中:

[html] view plaincopyprint?
  1. <!-- 启用MVC注解 -->
  2. <mvc:annotation-driven />
  3. <!-- 将 springSwaggerConfig加载到spring容器 -->
  4. <bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
  5. <!-- 将自定义的swagger配置类加载到spring容器 -->
  6. <bean class="com.yrok.swagger.SwaggerConfig" />

配置相关controller的api:

[java] view plaincopyprint?
  1. package com.yrok.controller;
  2. import javax.annotation.Resource;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RequestParam;
  6. import org.springframework.web.bind.annotation.ResponseBody;
  7. import com.wordnik.swagger.annotations.Api;
  8. import com.wordnik.swagger.annotations.ApiOperation;
  9. import com.wordnik.swagger.annotations.ApiParam;
  10. import com.yrok.entity.User;
  11. import com.yrok.service.UserService;
  12. @Api(value="user")
  13. @Controller
  14. @RequestMapping(value="/user")
  15. public class UserController {
  16. @Resource
  17. UserService userService;
  18. @RequestMapping(value = "/getUser")
  19. @ResponseBody
  20. @ApiOperation(value="根据ID获取用户信息",httpMethod="GET",notes="get user by id",response=User.class)
  21. public User getUser(@ApiParam(required=true,value="用户ID",name="userId")@RequestParam(value="userId")Integer userId) {
  22. return userService.getUserByID(userId);
  23. }
  24. }

和Swagger UI的集成:

在GitHub上将swaggerui下载,地址:https://github.com/swagger-api/swagger-ui

解压后将dist文件夹中所有的文件拷贝到webapp/swagger这里的swagger是作者自定义的你可以写为自己创建的目录。

修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改为自己项目路径+api-docs,例如:

http://localhost:8080/SSMSwagger/api-docs:SSMSwagger为项目名称。

在spring-mvc.xml中过滤掉swagger-ui的文件:

[html] view plaincopyprint?
  1. <!-- 静态资源文件,不会被Spring MVC拦截 -->
  2. <mvc:resources mapping="/swagger/**" location="/swagger/" />

到这里基本完成了springmvc和swagger的整合,下面是测试结果:

在浏览器中访问:http://localhost:8080/SSMSwagger/swagger/index.html#/user/getUser

到此,本篇文章已经结束,下面分享其他资料和参考:

参考地址:
官网:http://swagger.io/
GitHub:
swagger-springmvc:https://github.com/martypitt/swagger-springmvc
swagger-ui:https://github.com/swagger-api/swagger-ui
swagger-core:https://github.com/swagger-api/swagger-core
swagger-spec:https://github.com/swagger-api/swagger-spec

springMVC整合swagger(亲自试验完全可用)相关推荐

  1. springmvc整合swagger 与 常用注解说明

    Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使 ...

  2. 六:Dubbo与Zookeeper、SpringMvc整合和使用

    DUBBO与ZOOKEEPER.SPRINGMVC整合和使用 互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架 ...

  3. 03、Swagger2和Springmvc整合详细记录(爬坑记录)

    时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容. swagg ...

  4. Spring整合swagger

    最近主要负责接口开发,每次都用以前用过的postman,发现配置参数这些比较麻烦,然后有人推荐用swagger.于是尝试将swagger整合到项目中. 配置 //pomx.xml 添加依赖 <d ...

  5. SSM整合Swagger

    现在后端比较流行的框架是spring boot.使用spring boot集成swagger也非常方便.这里我们先来看看ssm整合Swagger. 导入依赖 spring和swagger之间存在版本问 ...

  6. SpringMVC整合Swagger2

    SpringMVC整合Swagger2 前言 POM引入 Swagger配置类 spring-mvc.xml设置 如果有在web.xml里配置拦截器 测试类 准备就绪 注意事项 爬坑经历 参考文章 前 ...

  7. 闲置服务器装win10系统,9年前的电脑装Win 10会怎么样?小编亲自试验

    原标题:9年前的电脑装Win 10会怎么样?小编亲自试验 最近家里装了宽带,以前有一台老式电脑闲置,于是想拿来装一下系统给家里父母用来看看电视什么的,原本是Win XP的系统,但是一键还原之后突然就蓝 ...

  8. SpringMVC整合SwaggerUI

    SpringMVC整合SwaggerUI 文章目录 SpringMVC整合SwaggerUI 概念介绍 相关资源下载 编写整合代码 index.html文件修改 maven中引入依赖 springmv ...

  9. 六、springboot整合swagger

    六.springboot整合swagger 简介 swagger 提供最强大,最易用的工具,以充分利用OpenAPI规范. 官网 : https://swagger.io/ 准备工作 pom.xml ...

最新文章

  1. 全栈工程师15年经验分享:40个改变编程技能的小技巧
  2. cmd 调用webservice接口_C++ 调用 Webservice gSoap 方法
  3. initrd镜像文件的作用与制作
  4. 关于 QAbstractItemModel 学习的一点分享
  5. java中比较字符串的大小用String的compareTo()
  6. 汇编——NT中读取MBR内容
  7. 使用Exchange反垃圾邮件组件解决内部仿冒邮件
  8. Hadoop-RPC应用demo
  9. android scrollview焦点,scrollview里面的edittext,当它获得焦点时如何滚动到edittext
  10. mysql 5.6.17 备份还原_mysql 备份和恢复
  11. 为什么Python循环变慢?
  12. Swift 3: let sortedNumbers = numbers.sort { $0 $1 } print(sortedNumbers) 结果显示为()
  13. RHEL7 -- NetworkManager
  14. greenplum管理员日常任务
  15. 基于深度学习的图像匹配技术一览
  16. “2022绿色智能制造创赢计划”全新集结:加入这个朋友圈,成为未来主角
  17. html网页在图片的后面同一行追加,htmlcss
  18. 使用微PE工具箱PE装机工具U盘重装系统win11
  19. RC电路(积分电路,微分电路)
  20. 【IntelliJ IDEA插件】Alibaba Cloud AI Coding Assistant

热门文章

  1. ise verilog多模块编译_如何使用ISE高效开发Verilog项目(新手)
  2. latex 小于_数学公式怎么快速输入?Latex语法了解一下
  3. python html解析beautiful_python中html解析-Beautiful Soup
  4. thymeleaf 的 th:onclick js方法入参
  5. JS学习笔记3-JavaScript 语句
  6. 第二章 Qt Widgets项目的创建、运行和发布的过程
  7. Python gevent高并发(限制最大并发数、协程池)
  8. golang 指针总结(与C/C++区别不大,就是不可以p+1偏移)
  9. 彻底弄懂计算机中的大端小端
  10. 8. OD-输入错误的信息注册未注册的软件