记录一下自己SpringMVC整合swagger的过程

SSM三大框架整合Springfox(Swagger2)步骤以及遇到的一些问题 需求是在已有的Spring+SpringMVC+Mybatis的项目中整合Springfox(Swagger2)。在网上查看了非常多的博客,均没有解决问题。经过一天多的摸索,总算是成功的完成了整合。现在将具体的步骤记录下来,希望能给有需求的朋友提供参考。注意:此篇文章仅讲解整合完成SSM三大框架以后整合Springfox(Swagger2) 阅读详情

首先引入三个swagger必需的jar包

因为自己目前在学习SpringMVC,还没学习boot,整合swagger的过程中还是半梦半醒的,总算弄成了就记录一下过程。
我这里用的是中央仓库中最新的版本

	<dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.12.1</version>
    </dependency>

	其他的像spring-webmvc包,日志相关包啥的此处就略了

这里再强调一下,网上好多文章都说引入前两个包就够了,然而我这几天学习的时候是不行的,会报ClassNotFoundException,必须要手动引入第三个包。

接下来搭建一个非常简单的web应用结构
Product类

package com.syy.entity;

public class Product {
    private static final long serialVersionUID = 1L;

    private Long id;
    private String name;
    /*产品型号*/
    private String productClass;
    private String productId;

   	......//get,set方法略
}

ProductController类

package com.syy.controller;

import com.syy.entity.Product;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = {"/product/"})
public class ProductController {

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public ResponseEntity<Product> get(@PathVariable Long id) {
        Product product = new Product();
        product.setName("空气净化器");
        product.setId(1L);
        product.setProductClass("filters");
        product.setProductId("T12345");
        return ResponseEntity.ok(product);
    }
}
//图方便就直接在控制器方法里构建数据了,省略掉service层

AppInitializer类

package com.syy.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

@Configuration
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{RootConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

RootConfig类啥内容都没就略了
WebConfig类

package com.syy.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@EnableWebMvc
@Import(SwaggerConfig.class)
@ComponentScan(basePackages = {"com.syy.controller"})
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/");
    }
}

swagger3.0版本的访问路径是/swagger-ui/index.html
跟之前的版本不一样,3.0以前是直接/swagger-ui.html。

SwaggerConfig类

package com.syy.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any()) //显示所有类
//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//只显示添加了对应注解的类
                .build();
    }

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("开放接口API")   //粗标题
                .description("HTTP对外开放接口")  //描述
                .version("1.0.0")   //api version
                .termsOfServiceUrl("http://xxx.xxx.com")
                .license("LICENSE") //链接名称
                .licenseUrl("http://xxx.xxx.com")   //链接地址
                .build();
    }
}

我这里单独把swagger的配置部分拿了出来,也可以都写在一个配置类里。
另外我这里也没有做接口分组,貌似也不麻烦,暂时没有研究。

然后就可以把项目跑起来了,手动访问swagger-ui/index.html,我截个自己的图
在这里插入图片描述你也可以直接在这里测试控制器方法,挺方便的,自己也算是对REST有了个基本的认知

Spring-MVC与Maven和Swagger的整合实战演示 Spring MVC是Spring框架的一部分,它遵循MVC(Model-View-Controller)设计模式,用于开发Web应用程序。该框架将Web层分解为控制器、模型、视图和其他组件,使得代码的组织更加清晰,并且与Spring的其他功能如依赖注入和面向切面编程能够无缝集成。Apache Maven是一个项目管理工具,主要服务于Java平台的项目。Maven的出现极大地简化了构建过程,它提供了一种标准化的方式去管理项目的构建、报告和文档。 阅读详情

相关推荐

SpringMVC 集成 Swagger2

SpringMVC 集成Swagger2,相关说明可以打开 https://blog.youkuaiyun.com/everyday_hzg/article/details/80537902

springmvc spring 集成swagger

ssh简称 本次业务系统采用的传统应用架构(springmvc spring hibernate),为 方便系统注册和查看对外提供的接口,可通过 Swagger 集成。 swagger 与 SwaggerUi介绍 Swagger 为提供一种方便查看、管理、测试的接口,而Springfox-Swagger为 针对spring项目框架提供的一个插件,方便集成swagger,集成后可通过地址栏 访问对外提供的swagger json格式接口数据。 SwaggerUI 为Swagger接口提供了一个统一

欢迎来到我的技术分享博客!这里将带你深入了解AI技术、Java架构设计、系统开发与优化等前沿技术内容。我专注于从实战经验 1257

IST——In-System-Test

安全性是自动驾驶平台的关键特性之一,而这些架构中使用的半导体芯片必须保证ISO 26262标准所要求的功能安全方面。为了监控由于现场缺陷导致的故障,在启动和/或关闭期间会自动运行系统内结构测试。当系统内测试(IST,In-System-Test)架构检测到任何永久性缺陷时,驾驶平台会做出响应,以实现系统的故障安全状态。汽车IC采用高质量测试方法进行筛选,以实现接近零的DPPM(每百万缺陷部件)。即使在这样的高测试标准下,由于环境或操作条件的影响,在系统现场运行过程中仍可能出现可靠性缺陷。

weixin_50518899的博客 3205

SpringFox Swagger 3.0.0 适配SpringMvc、SpringWebflux

原文地址 https://www.aiprose.com/blog/127 现在后台基本都用到了swagger,无论开发人员调试测试,还是前端用,都很方便,前段时间如果用SpringWebflux的话,只能用3.0快照版,不过最近已经发布了正式版,时隔2年多,新版本还是有很大的变化。https://github.com/springfox/springfoxNOTE: Would love feedback to make this betterRemove explicit dependencies .

码农笔录-微信公众号博客 2803

PPPoe的抓包分析(详细)

PPPoe的报文结构 可以看出PPPoe的报文结构其实很简单,只不过是将PPPoe的报文塞到以太网的载荷中,而且它的头部字段也十分的简单,TLV就不说了,code字段表示了PPPoe不同的报文类型,比较常见的就是上面的五个报文了,PPPoe的报文类型其实还蛮多的。session ID主要的作用就是标识一段会话,因为使用PPPoe的最主要作用就是使得多台设备可以借助以太网多点接入多点访问的特点去和一台设备做上网认证请求,这样运营商一台认证设备就可以满足多个用户的认证请求,这和PPP相比起来好的不止一点。

qq_47529104的博客 7867

【tio-websocket】15、学习tio的第1步—tio-study

tio-study 是用于学习 t-io 的示范工程,tio-study 是入门 t-io 最好的方式!tio-study 工程演示的是一个典型的 TCP 长连接应用工程,分为 server(服务端) 和 client(客户端) 工程,server 和 client 共用 common(公共模块) 工程

JACKAL 1万+

swagger与springmvc集成步骤

1.导入依赖 <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>org.springfr

qq_45857788的博客 507

Java开源海外跨境电商购物商城源码,TikToK商城系统源码,外贸商城在线交易

最近很火的一款商城源码,朋友分享给我的,完整版,java开源代码,带有非常详细的搭建教程,文件都一个多G,喜欢的可以下载来研究研究!3、创建mall 数据库并导入数据,数据库名用户名为:mall 数据库密码保持为:XXKytcACPX3GbdsH。8、进入cd /data/deploy/mall-tool/目录执行./build.sh脚本。7、宝塔ssh进入cd /data/deploy/mall/ 执行./build.sh脚本。2、安装宝塔环境:安装 Redis、MySQL5.7、Ngin1.2。

百创科技 2821

springMvc整合swagger

apis(RequestHandlerSelectors.any()) // 对所有api进行监控。.paths(PathSelectors.any()) // 对所有路径进行监控。-- FastJson的版本必须在1.2.10以上,不然访问/v2/api-docs返回为空 -->.select() // 选择那些路径和api会生成document。--让ioc容器扫描到swagger的配置文件-->.........

qq_41720578的博客 664

【TC3xx芯片】TC3xx DMA模块详解

TC3xx DMA模块详解

qq_36056498的博客 5915

基于Slim-Neck架构的YOLOv11轻量化特征融合方案(实现超轻量级与高精度的双重突破)

购买即可解锁800+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,每日更新。

m0_64661770的博客 250

spring boot 整合springMVC+mybatis+swagger过程记录

最近和一些朋友接了一个编写炒数字货币的辅助小工具的开发。这也是我除学校里做的小项目外,第一次完全负责一个项目的后台框架搭建,故在此记录一下,方便日后查看。 目录 一.整合springMVC+mybatis 二.整合swagger和swagger-ui 三.加入log4j的日志管理和junit单元测试 一.整合springMVC+mybatis springMVC的话就不用过多介绍了...

weiqi_123的博客 978

Dify与第三方平台(飞书、微信、钉钉)LangBot机器人对接实战

调用链路:飞书用户发消息 → 飞书开放平台事件回调 → LangBot 服务 → Dify 应用接口 → Dify 知识库 + 大模型生成答案 → 原路返回飞书聊天框Dify:承载知识库、提示词配置、大模型调用能力;LangBot:多 IM 渠道适配器,统一对接各大 IM 开放平台与 Dify API;飞书开放平台:提供机器人消息收发、事件推送能力。LangBot 作为中间转发服务,一端对接 Dify 应用 API,一端对接飞书开放平台机器人接口;

悦分享 266

swagger与springMVC、maven整合

最近使用swagger自动生成api文档遇到了不少坑,网上有许多教程,但都并不能顺利运行。现自己整理了一份,以备之后用到时使用。 在这之前需要注意的几个问题: 1.jar包是否引用完整; 2.是否下载了匹配版本的swagger-ui(该案例中使用了swagger-ui 2.2.10版本),jar包中swagger-springmvc版本为1.0.2。该问题若不注意可能引起以下问题:

baidu_36720706的博客 3231

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用ssm框架搭建工程完成easypoi导入excel文件时遇到的问题

1、IE8执行AJAX请求时,返回JSON出现下载文件(其实后台执行成功了,但是前台就是看着不爽) 解决方案: Produces返回类型改成"text/plain",(如果用的response那么就在消息头增加contentype为"text/plain"就好了) 如果上面使用的是produces的话,那么方法返回类型必须是String类型的,所以需要把json数据转成字符串,我用的fastjs...

WWXA 985

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SpringMVC整合Swagger2

关于SpringMVC整合Swagger。 SpringMVC集成Swagger比较麻烦,主要的坑都在配置上,文章末尾有配置相关的踩坑记录。

m0_46161737的博客 2084

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

springmvc+swagger2整合

整合的过程中遇到了一些问题,特此记录。 问题一:springmvc中使用fastJsonHttpMessageConverter导致swagger2 解析json失败若果换成mappingJackson2HttpMessageConverter就没事儿了,但是感觉fastjson性能更好一些,所以就得硬着头皮解决swagger2与fastjson兼容的问题。网上有很多解决方案,无非就是说换最高版

qq_19363753的博客 4318

SpringMVC与Springfox(Swagger2)整合,并使用swagger进行测试

原文写的很好,我照着原文弄下直接就可以用了。然后里面的一些小问题我修改了一下,并记录下来主要流程: Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用: 接口的文档在线自动生成。 功能测试。 Sp...

WWXA 1237

SSM整合Swagger

目录前言导入依赖编写配置类三级目录 前言 之前我自己学习使用了Swagger这个插件,感觉很好用,但是之前是在springboot里面整合的,的确十分的方便,只需要导入依赖,编写一个配置类把它引入到spring容器之中就行了,但是因为当前公司的项目是用的SSM框架写的,之后会开始用springboot框架写,所以就需要在SSM框架里面配置Swagger.但是在这个过程中还是碰到了几个比较难搞的点,所以就记录下来. 导入依赖 这一步和之前的springboot其实是一样的,在pom.xml文件里面添加以下的依

lovely__RR的博客 1753

springMVC整合swagger2相关记录

为手机端app定义接口,原先是定义接口文档,然后在使用postman测试接口的可用性,觉得这个非常麻烦,曾有一会接口文档还造成的误删的情况。所以抽空将所有的接口swagger2进行管理接口。添加成功后,记录一下该方法的实现方式,以便后期查看使用。 一:pom文件引入 <!-- swagger2核心依赖 --> <dependency&gt...

gyp0307的博客 394

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

时间 内容 备注 2018年6月18日 基本使用 spirngmvc整合swagger2 开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容。 swagger简介 1、swagger主要提供了三个功能: Swagger Editor: Swagger提供的一个编辑器,用来通过Sw...

lee_sine的博客 1877

springMVC整合springfox 3.0实现swagger2在线接口文档

springMVC整合springfox 3.0实现swagger2在线接口文档 在这个springboot盛行的年代,想找点想要的资源是真的好难呀。springfox3.0跟之前的版本有很多的不同在跟springMVC整合时跟之前的版本多少有些不同,所以我在整个过程中碰到了很多意想不到的问题,这里做一下记录。也欢迎各位大佬指正。不多言,入正题。 整合步骤概括: 导包(这个废了我很长的时间,后面遇到的很多问题都是因为包的问题) SwaggerConfig.java文件 mvc配置文件 整合步骤详解: 1

shengzhijian5的博客 1019

记一次SpringMVC项目中整合swagger,亲测可用

Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。 Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 Swagger 文件可以在许多不同的平台上从代码注释中自动生成。 Swagger 有一个强大的社区,里面有许多强悍的贡献者。 Swagger 文档...

NB6063的博客 1410

SpringMVC整合SwaggerUI

SpringMVC整合SwaggerUI 文章目录SpringMVC整合SwaggerUI概念介绍相关资源下载编写整合代码index.html文件修改maven中引入依赖springmvc配置文件中配置资源路径编写swagger配置文件效果展示整合时可能出现的异常问题分析问题解决总结参考资料 网上介绍Swagger整合的文章很多,但都是东拼西凑,抄来抄去,讲不清楚重点。本文的目的就是希望那些从来没...

星悬_月的博客 1393

swagger2 与 springmvc 整合 生成接口文档

简介 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。 我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Andro

AndyBao 7268
上一篇: MacOS使用IDEA测试邮件发送时无法使用25端口的解决方法
下一篇: macos解决github不显示头像等图片的问题,2021-01-29亲测有效
加把劲秃头侠
博客等级 码龄9年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值