`
阅读更多
因为公司使用的spring版本太高,在集成swagger的时候会存在一些问题,而网上的很多实例大多都是版本比较低的,为了是朋友们少才坑,我这边将集成的过程记录一下: 1. 引入spring、swagger的相关jar包(springfox-swagger2、springfox-swagger-ui),在pom.xml中配置:   <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency>     提醒: 特别注意,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的相关访问配置:   <mvc:exclude-mapping path="/swagger*/**"/> <mvc:exclude-mapping path="/v2/**"/> <mvc:exclude-mapping path="/webjars/**"/>     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<Map<String, Object>> treeData( @ApiParam(required = true, value = "区域ID") @RequestParam(required=false) String extId, HttpServletResponse response) { List<Map<String, Object>> mapList = Lists.newArrayList(); List<Area> list = areaService.findAll(); for (int i=0; i<list.size(); i++){ Area e = list.get(i); if (StringUtils.isBlank(extId) || (extId!=null && !extId.equals(e.getId()) && e.getParentIds().indexOf(","+extId+",")==-1)){ Map<String, Object> map = Maps.newHashMap(); map.put("id", e.getId()); map.put("pId", e.getParentId()); map.put("name", e.getName()); mapList.add(map); } } return mapList; } }     4. 启动项目,查看结果:

 
到此结束!!  
  • 大小: 83.2 KB
10
0
分享到:
评论
2 楼 springcloud关注者 2017-10-30  
hunky 写道
文章写得不错,很有参考价值。学习了

朋友时刻关注
1 楼 hunky 2017-10-30  
文章写得不错,很有参考价值。学习了
相关资源推荐
  • Spring 4.2.2以上版本swagger集成方案和踩过的坑 引入springswagger的相关jar包(springfox-swagger2、springfox-swagger-ui),在pom.xml中配置
  • 【最新】spring-boot2.0 整合 swagger2 (版本 2.9.2)及注意坑点 文章目录1. Swagger 简介2. Swagger 快速集成3. 注意事项 1. Swagger 简介 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 2. Swagger 快速集成 添加pom依...
  • 【8大坑】重构springboot踩坑记录手册 今天本来想和大家说一下spring中bean的创建过程和生命周期的,可是因为项目重构过程中遇到好多的问题,卡来卡去,所以想和大家分享一下今天遇到的坑,希望大家可以少踩坑。项目场景:因为maven项目启动太笨重了,每次启动都需要好久的时间,还有项目中很多依赖都是不需要的,可是因为历史遗留问题一直都不能很好解决这个问题,所以这次趁改架构的机会一起优化了。所以将项目app请求层一个服务,业务请求一个服务...
  • 无处不在的Spring AOP事务及踩过的坑 无处不在的Spring AOP事务及踩过的坑.......................
  • 有关springboot整合swagger遇到的坑 swagger配置类Rest接口:后台报错:No mapping found for HTTP request with URI [/swagger-ui] in DispatcherServlet with name 'dispatcherServlet'原因分析:这个错误,是因为资源映射问题导致。我们在访问http://localhost:8080/swagger-ui.html#/时,这个s...
  • spring cloud踩坑记录 1.触发熔断的响应超时间配置不起作用相关属性配置hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds = 6000在版本Edgware.RELEASE中, timeoutInMilliseconds不起作用, Edgware.SR1中已经修复该bug, 故更换版本解决问题!...
  • Spring Cloud 开发微服务踩过的一个坑 材料: Spring Cloud: Finchley.SR2 Spring Boot: 2.0.6 Realse 问题 采用H2 dababase作为微服务的嵌入式数据库,用hystrix进行监控微服务的运行情况。未使用hystrix之前可查询数据库,使用之后无法进行查询,提示错误如下。 &quot;error&quot;:&quot;Internal Server Error&quot;,&quot;message&quot;:&quot;Could not wr...
  • https://blog.csdn.net/zhangbo328/article/details/73468733
  • springboot使用总结,以及踩过的坑 从接触springboot开始,一路自己摸索,到项目框架的稳定运行,中途踩了不少坑1、拦截器2、全局异常捕获处理(@ControllerAdvice)3、捕获404请求4、集成spring Security登录验证以及权限管理    部分代码展示5、连接池配置的时候需要注意要不容易出错(项目运行一段时间后报错连接关闭,添加以下配置后就解决问题了)6、集成redis7、集成mybatis8、集成外包...
  • https://download.csdn.net/download/mr_zhang0101/10830743 android集成微信开发踩坑,包括详细的集成方案,以及一步一步填坑
  • spring cloud 前人踩过的坑
  • SpringMvc踩过的坑
  • java spring集成redis所需库包 java集成踩过的坑,解决库包之间的不兼容。
  • https://blog.csdn.net/sky_math/article/details/80438847 踩坑少年欢乐多0.0记录下自己开发过程中遇到的坑,避免以后遇到了又一脸懵逼。(之前已经踩过很多坑了,没有及时记录,之后优化代码的时候再看到或者后续开发中遇到坑会更新到文章中。)computed修改data返回的数据出处是黄神的课程,源码是vue1.x,在2.x版本就会有这个问题,但项目还是可以正常跑起来的。修改方法很简单,官方API写的很明白了,给出官方示例:var vm = new Vue({ ...
  • 实战springboot踩过的坑
  • https://blog.csdn.net/linysuccess/article/details/53432568
  • https://blog.csdn.net/qq_22230935/article/details/81112198
  • spring3.0 整合 junit 遇到的坑 主要包为以下: junit-4.12.jar org.springframework.test-3.0.1.RELEASE-A.jar spring-context-3.0.1.RELEASE.jar hamcrest-core-1.3.jar 主要的是包匹配问题,一定要了解自己spring版本 错误: 1.The type org.springframework.context.App...
  • Spring Cloud 整合 Swagger2 以及遇到的坑 一、引入依赖: &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;io.springfox&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;springfox-swagger2&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;2.5.0&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; &am
  • https://blog.csdn.net/qq_42967531/article/details/84975845 1.使用shardingjdbc做分库分表 最近公司由于业务需要,对日益增加的数据量越来越无法容忍,遂作出分库分表的决定,考察了几个技术方案后,决定使用shardingsphere做分表中间件。 使用maven拉取jar包: &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;io.shardingsphere&amp;lt;/groupId&amp;gt; ...
Global site tag (gtag.js) - Google Analytics