博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 4.2.2以上版本和swagger集成方案和踩过的坑
阅读量:5928 次
发布时间:2019-06-19

本文共 5211 字,大约阅读时间需要 17 分钟。

hot3.png

因为公司使用的spring版本太高,在集成swagger的时候会存在一些问题,而网上的很多实例大多都是版本比较低的,为了使朋友们少踩坑,我这边将集成的过程记录一下:愿意了解源码的朋友直接求求交流分享技术二一四七七七五六三三

1. 引入spring、swagger的相关jar包(springfox-swagger2、springfox-swagger-ui),在pom.xml中配置:

 

io.springfox
springfox-swagger2
2.4.0
org.springframework
spring-core
org.springframework
spring-beans
org.springframework
spring-context
org.springframework
spring-context-support
org.springframework
spring-aop
org.springframework
spring-tx
org.springframework
spring-orm
org.springframework
spring-jdbc
org.springframework
spring-web
org.springframework
spring-webmvc
org.springframework
spring-oxm
io.springfox
springfox-swagger-ui
2.4.0

提醒: 特别注意,springfox-swagger2在集成的时候,已经引入了spring的相关jar,特别是spring-context、spring-context-support的版本和项目中使用的版本完全不一致,项目在启动的时候出现很多包冲突的问题,这边在引入pom.xml文件的时候过滤掉了spring的相关jar包。

2. 编写Swagger的配置类:

 

package com.ml.honghu.swagger.web;    import org.springframework.context.annotation.Bean;  import org.springframework.context.annotation.ComponentScan;  import org.springframework.context.annotation.Configuration;  import org.springframework.web.servlet.config.annotation.EnableWebMvc;    import springfox.documentation.builders.ApiInfoBuilder;  import springfox.documentation.builders.PathSelectors;  import springfox.documentation.builders.RequestHandlerSelectors;  import springfox.documentation.service.ApiInfo;  import springfox.documentation.service.Contact;  import springfox.documentation.spi.DocumentationType;  import springfox.documentation.spring.web.plugins.Docket;  import springfox.documentation.swagger2.annotations.EnableSwagger2;    @EnableWebMvc  @EnableSwagger2  @Configuration  @ComponentScan(basePackages ={"com.ml.honghu.**.rest"})  public class SwaggerConfig {      @Bean      public Docket createRestApi() {          return new Docket(DocumentationType.SWAGGER_2)                  .apiInfo(apiInfo())                  .select()                  .apis(RequestHandlerSelectors.basePackage("com.ml.honghu"))                  .paths(PathSelectors.any())                  .build();      }        private ApiInfo apiInfo() {          return new ApiInfoBuilder()                  .title("接口列表 v1.0")                  .description("接口信息")                  .termsOfServiceUrl("http://honghu.com")                  .contact(new Contact("", "", "HongHu"))                  .version("1.1.0")                  .build();      }  }

3. 在spring-mvc.xml文件中进行过滤器的配置,过滤掉swagger的相关访问配置:

4. 服务配置项

@Api("区域服务")@RestController  @RequestMapping(value = "/rest/area")  public class AreaService  {        @Autowired      private AreaService areaService;            @ApiOperation(value = "区域列表", httpMethod = "GET", notes = "区域列表")      @IsLogin      @ResponseBody      @RequestMapping(value = "treeData", method = RequestMethod.GET)      public List
> treeData(
@ApiParam(required = true, value = "区域ID") @RequestParam(required=false) String extId, HttpServletResponse response) { List
> mapList = Lists.newArrayList(); List
list = areaService.findAll(); for (int i=0; i
map = Maps.newHashMap(); map.put("id", e.getId()); map.put("pId", e.getParentId()); map.put("name", e.getName()); mapList.add(map); } } return mapList; } }

5.启动项目,查看结果:

转载于:https://my.oschina.net/u/3873725/blog/2960919

你可能感兴趣的文章
Linux 日志
查看>>
Android Material Design--TextInputLayout
查看>>
NHibernate3剖析:Mapping篇之ConfORM实战(1):概览
查看>>
iOS_开发中遇到的那些问题_1
查看>>
教您在终端模拟器中调节文字大小
查看>>
win10: This file can't be opened
查看>>
curl
查看>>
[LeetCode] Sentence Similarity 句子相似度
查看>>
Android——复制项目出现Application Installation Failed
查看>>
html5--6-56 阶段练习5-翻转效果
查看>>
我的进程去哪儿了,谁杀了我的进程
查看>>
16.其它内置指令
查看>>
R t-test cor.test
查看>>
C#实现局部峰值查找,功能对应Matlab中的findpeaks.m
查看>>
SpringBoot系统列 1 - HelloWorld!
查看>>
运行时系统:类型系统、派发系统--运行时系统是一个解释系统
查看>>
python gb2312 转换为 utf-8
查看>>
为何成员函数指针模板不能像函数指针模板一样有简单的声明方式呢
查看>>
《Scala, Erlang, F#作者讨论函数式语言》有感
查看>>
Android IOS WebRTC 音视频开发总结(六八)-- Google: What's next for WebRTC
查看>>