Swagger+Spring MVC框架学习分享

【常见BUG】Spring Boot 和 Springfox(Swagger)版本兼容问题 ??欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。???欢迎订阅本专栏。 阅读详情
  1. 最近参与公司接口编写,Android和IOS端都要调用这些接口,需要对接调试,如果没有一个接口文档,管理接口,别人用了接口,也不知道接口怎么用,接口上有什么参数,哪些是必须参数,哪些是非必须参数,于是研究了Swagger框架应用到项目中去,Swagger与Spring项目结合,Spring必须是4.0以上版本,下面是研究的小小demo:  

1、引入Swagger的jar包,由于我的是Maven项目,所以在pom.xml中(注意Spring是4.0以上版本)

  1. <dependency>  
  2.            <groupId>io.springfox</groupId>  
  3.            <artifactId>springfox-swagger2</artifactId>  
  4.            <version>2.0.2</version>  
  5.        </dependency>  
  6.       <dependency>  
  7.           <groupId>com.fasterxml.jackson.core</groupId>  
  8.           <artifactId>jackson-annotations</artifactId>  
  9.           <version>2.4.4</version>  
  10.       </dependency>  
  11.       <dependency>  
  12.           <groupId>com.fasterxml.jackson.core</groupId>  
  13.           <artifactId>jackson-databind</artifactId>  
  14.           <version>2.4.4</version>  
  15.       </dependency>  
  16.       <dependency>  
  17.           <groupId>com.fasterxml.jackson.core</groupId>  
  18.           <artifactId>jackson-core</artifactId>  
  19.           <version>2.4.4</version>  
  20.       </dependency>    

2、 新增Swagger配置代码
  1. package cn.;  
  1. import org.springframework.context.annotation.Bean;  
  2. import org.springframework.context.annotation.Configuration;  
  3. import org.springframework.context.annotation.ComponentScan;  
  4. import org.springframework.web.servlet.config.annotation.EnableWebMvc;  
  5. import springfox.documentation.spi.DocumentationType;  
  6. import springfox.documentation.spring.web.plugins.Docket;  
  7. import springfox.documentation.swagger2.annotations.EnableSwagger2;  
  8.   
  9. @Configuration  
  10. @EnableWebMvc  
  11. @EnableSwagger2  
  12. @ComponentScan(basePackages ={"com.test.api"})  
  13. /** 
  14.  * 
  15.  * @author xiaozhou  
  16.  */  
  17. public class SwaggerConfig {  
  18.   
  19.    /** 
  20.     * Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple 
  21.     * swagger groups i.e. same code base multiple swagger resource listings. 
  22.     */  
  23.    @Bean  
  24.    public Docket customDocket(){  
  25.       return new Docket(DocumentationType.SWAGGER_2);  
  26.   
  27.    }  
  28.   
  29. }  

3、修改 applicationContext.xml
  1. <bean class="cn.conf.SwaggerConfig"/>  


 4、增加一个测试的ContactController 
  1. @Api(value = "contacts-api", description = "有关于用户的CURD操作", position = 5)  
  2. @Controller  
  3. @RequestMapping("/contacts")  
  4. public class ContactController {  
  5.   @Autowired ContactService contactService;  
  6.   @ResponseBody  
  7.   @RequestMapping(value="/1.0/contact/get.do/{id}",method=RequestMethod.GET)  
  8.   public Contact get(@PathVariable Long id) {  
  9.     return contactService.find(id);  
  10.   }  
  11.   @ApiOperation(value = "创建用户", notes = "返回用户实体对象", response = Contact.class, position = 2)  
  12.   @RequestMapping(value = "/1.0/contact/add.do", method=RequestMethod.POST)  
  13.   public void add(@RequestBody Contact contact,HttpServletResponse response) {  
  14.     contactService.create(contact);  
  15.     String location = ServletUriComponentsBuilder.fromCurrentRequest()  
  16.       .pathSegment("{id}").buildAndExpand(contact.getId())  
  17.       .toUriString();  
  18.    
  19.     response.setHeader("Location",location);          
  20.   }  
  21.    
  22.   @RequestMapping(value="/1.0/contact/update.do/{id}",method=RequestMethod.POST)  
  23.   @ApiResponses(value = {  
  24.             @ApiResponse(code = 200, message = "更新成功", response = Contact.class),  
  25.             @ApiResponse(code = 404, message = "找不到页面"),  
  26.             @ApiResponse(code = 500, message = "内部报错")}  
  27.   )  
  28.   public void update(@ApiParam(name="id", value="编号", required=true)@PathVariable Integer id,@RequestBody Contact contact) {  
  29.     contact.setId(id);;  
  30.     contactService.update(contact);  
  31.   }  
  32. }  

5、 添加Swagger UI配置

从网上下载SwaggerUI项目,将dist下所有内容拷贝到本地项目webapp下面如下图


6、修改index修改index.html

将index.html中http://petstore.swagger.wordnik.com/v2/swagger.json修改为http://localhost:8080/v2/api-docs

7、启动项目,访问http://localhost:8080/v2/index.html即可看到如下所示页面:



参考资料:

https://raibledesigns.com/rd/entry/documenting_your_spring_api_with

  http://www.2cto.com/kf/201502/376959.html

  http://www.3pillarglobal.com/insights/restful-api-documentation-using-swagger-and-spring-mvc

      http://springfox.github.io/

Spring Boot Swagger 404问题全解析:从原理到实战解决 在Java Web开发中,API文档是前后端协作和接口测试的关键。Swagger作为一套基于OpenAPI规范的API文档生成工具,通过自动扫描代码注解,能动态生成交互式文档界面,极大提升了开发效率。其核心原理在于,Spring Boot的自动配置机制会注册特定的资源处理器,将请求路径映射到jar包内的静态资源文件。然而,在实际工程实践中,开发者常因配置不当或环境冲突,导致Swagger UI页面无法访问,出现令人困惑的404错误。这通常涉及路径映射、静态资源处理、以及安全拦截等多个技术环节。尤其在微服务架 阅读详情

相关推荐

Python经常遇到导入xlwings就出错,如何解决

Python经常在导入xlwings时遇到错误。有人建议尝试重装或升级xlwings,但这些操作后仍然无法解决导入错误问题。

felix_8的博客 1740

Swagger框架学习分享

Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟以前 转至元数据起始 */一、背景介绍1.1.项目简介1.2.coderepository1.3.演示项目二、开发准备2.1.环境准备2.2.项目搭建2.2.1." style="margin:0px;

刘新宇的博客 2万+

电路仿真软件PSIM简介

PSIM的基本使用操作...

qq_55203246的博客 7183

Spring mvc 集成Swagger2

Spring mvc 集成Swagger2 Spring mvc 集成Swagger2效果问题1(swagger界面可以打开,但是接口不显示)问题2( Could not resolve placeholder 'cardUrl' in value "${cardUrl}")重点: ) 小编一直写的是SPringleboot 和vue,突然今天公司给我一个Spring mvc 的项目,但是还是没有集成Swagge的项目,导致我在调试及测试时候很不方便,不能及时看到接口的信息。所以小编作为多年的资深开发,觉得

柳牧之的博客 683

Proteus仿真实战:基于IIC驱动SSD1306的0.96英寸OLED显示方案解析

本文详细解析了在Proteus仿真环境中基于IIC驱动SSD1306的0.96英寸OLED显示方案。从硬件搭建、IIC接口连接、软件驱动移植到常见问题排查,提供了全面的实战指导,帮助开发者快速实现OLED显示功能并优化性能。

weixin_28724661的博客 773

LLM推理服务中的SLO感知调度优化实践

在AI服务架构中,服务级别目标(SLO)是衡量服务质量的核心指标,特别是在大型语言模型(LLM)推理场景下。SLO通常涉及TTFT(首token时间)、TPOT(每token生成时间)和端到端延迟等关键维度,这些指标直接影响用户体验和系统效率。传统FCFS调度策略由于缺乏SLO感知能力,在混合负载下往往导致资源利用率低下和SLO达标率骤降。通过引入基于模拟退火的动态调度算法和精准的延迟预测模型,可以实现对不同优先级请求的智能调度,显著提升GPU利用率和SLO达标率。这种技术方案特别适用于需要同时处理实时对话

weixin_42549154的博客 372

Spring Mvc和SpringBoot整合Swagger2

今天做不成的事,明天也不会做好。 各位同学大家好,最近项目赶进度,没有钻研技术的时间,但碰巧今天需要在Spring项目上进行SpringMvc和Swagger的整合,而第一次使用Swagger是在SpringBoot项目上,因此踩了不少的坑,于是想和大家分享一下 :关于Swagger在SpringBoot或者和SpringMvc的集成! 1.什么是Swagger?...

linlangleo的博客 2223

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 406

再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香

Knife4j 简介 ========== Knife4j 的前身是 swagger-bootstrap-ui,其实就是一个纯 Swagger UI 的皮肤项目,用过 Swagger 的应该都知道,Swagger UI 是不怎么好用的,并不太适合国人,所以 swagger-bootstrap-ui 项目就诞生了。 swagger-bootstrap-ui 后面为了满足许多个性化的需求,又加入了许多丰富的服务端特性,不再仅仅只是专注于前端 UI 皮肤了,所以又改名:knife4j。 取名 knife4j 是希

m0_67596808的博客 341

【AUTOSAR AP PHM 】PHM 标准化“检查点上报接口”落地指南(AUTOSAR AP · R24-11取向)

本文介绍了AUTOSAR AP R24-11标准下PHM(平台健康管理)模块中"检查点上报接口"的标准化实现方案。主要内容包括: 核心设计理念:采用"配置优先"原则,通过部署模型预先定义监管参数,应用进程只需简单上报枚举标识,具体判定由PHM执行。 职责划分: 应用进程:仅调用ReportCheckpoint接口上报枚举值 PHM:负责Alive计数、Deadline区间判定和Logical路径校验 EM/IdsM:提供进程状态和越权检测 三类监管机制: Alive:

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 220

FLUENT 软件中design modeler网格划分后,导出失败:系统显示“在网格文件导出过程中出现异常。请将数据发送给您的技术支持供应商。”...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1474

SSH 整合Swagger2

之前用的是springboot整合swagger2,新公司这边的系统是之前开发的,用的是SSH框架,这里记录一下 整合过程,以及遇到的坑。 1.导入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId>

kelly921011的博客 1154

第9.3章 从CMake基础到自动驾驶实战:构建跨平台C/C++项目的全能指南

《CMake构建实战:项目开发卷》精要指南 本文系统梳理了许宏旭《CMake构建实战》核心内容,涵盖C++构建全流程: 基础构建:详解MSVC/GCC编译器使用、Makefile编写及静态/动态库构建方法 CMake核心:解析语法结构、变量控制、文件操作等关键命令,阐述项目全生命周期管理 实战应用:通过快速排序、手写数字识别项目演示现代CMake实践,特别针对自动驾驶领域给出多传感器融合、SLAM等场景的CMake配置方案 特色价值:本书填补了官方文档实例不足的空白,提供300+代码示例,是掌握工业级C++

行知SLAM 1343

Swagger

Swagger介绍-一套流行的API框架原创 2016年06月24日 13:49:05标签:swagger /api框架15267简介号称:世界最流行的API框架官网:http://swagger.io/解决什么问题:在前后台分离的开发模式中,减小接口定义沟通成本,方便开发过程中测试,自动生成接口文档。实例代码位置:https://github.com/pumadong/cl-roadshow/t...

mr_zheng0_0的博客 188

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

swager java_Spring MVC中使用Swagger生成API文档和完整项目示例Demo,swagger

实际项目中非常需要写文档,提高Java服务端和Web前端以及移动端的对接效率。听说Swagger这个工具,还不错,就网上找了些资料,自己实践了下。一:Swagger介绍Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档,同时swagger-ui还可以...

weixin_36481059的博客 462

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

swagger

Swagger框架学习分享转至元数据结尾Created and last modified by 刘新宇 大约1分钟以前转至元数据起始一、背景介绍1.1.项目简介Swagger项目是由Dilip Krishnan和Adrian Kelly等人维护开发的一个为Spring Web MVC 项目提供方法文档的一个框架。该框架最主要的功能是将Controller的方法进行可视化的展现,像方法注释,方法参...

kangjianyun的博客 226

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

spring mvc 集成 swagger及swagger ui

参考博文:http://javatech.wang/index.php/archives/74/ 不过,我这儿是新建项目测试的,按他文章里操作完还是缺少jar包:log4j-1.2.16.jar     slf4j-api-1.7.5.jar         slf4j-log4j12-1.7.5.jar 另外,我的拦截是增加了一层的,不是*,所以配置上有一些区别,主要原因是现有项目原有的接口

木偶笔记 2564
上一篇: 缓存与数据库一致性保证
下一篇: 闲谈Tomcat性能优化
杜引强
博客等级 码龄13年 806粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值