在使用spring boot进行开发接口时,很好用的就是swagger2接口文档,自动生成文档后还能进行测试。spring boot项目集成swagger2就比较容易,但是我在spring mvc的项目中集成swagger2的时候遇到了不少问题,现记录下,方便以后工作中使用。

0.Spring MVC配置文件中的配置

  1. <!-- 设置使用注解的类所在的jar包,只加载controller类 -->  <span style="white-space:pre">    </span><context:component-scan base-package="com.jay.plat.config.controller" />
  2. <!-- 使用 Swagger Restful API文档时,添加此注解 -->  <mvc:default-servlet-handler />  、
  3. <mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
    <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>

1.maven依赖

  1. <!-- 构建Restful API -->
  2. <dependency>
  3. <groupId>io.springfox</groupId>
  4. <artifactId>springfox-swagger2</artifactId>
  5. <version>2.4.0</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>io.springfox</groupId>
  9. <artifactId>springfox-swagger-ui</artifactId>
  10. <version>2.4.0</version>
  11. </dependency>

2.Swagger配置文件

/** Restful API 访问路径:* http://IP:port/{context-path}/swagger-ui.html* eg:http://localhost:8080/jd-config-web/swagger-ui.html*/
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages = {"com.thinkgem.jeesite.modules.rmi.web"})
@Configuration
public class RestApiConfig extends WebMvcConfigurationSupport {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.thinkgem.jeesite.modules.rmi.web")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().title("售电平台接入数据 APIs").termsOfServiceUrl("http://blog.csdn.net/he90227").contact("售电PC").version("1.1").build();}
}

3.Controller中使用注解添加API文档

/**** Created by kwt on 2017/8/23.*/
@Controller
@RequestMapping("${adminPath}/rmi/test/tools")
@Api( value = "设备管理测试", description = "设备管理-测试")
public class TestAmmeterToolsController {@Autowiredprivate AmmeterToolsUtil ammeterToolsUtil;/*** 用户登录* @return*/@ApiOperation(value="用户登录接口",notes="用户登录接口" ,httpMethod = "POST")@RequestMapping(value = "/login", method = RequestMethod.POST)@ResponseBodypublic Object login() {LoginReq loginReq = new LoginReq();loginReq.setUserName("");loginReq.setPassword("");loginReq.setTypeName("");LoginResp login = ammeterToolsUtil.login(loginReq);return login;}/*** 用户下网关查询* @return*/@ApiOperation(value="用户网关查询",notes="用户网关查询" ,httpMethod = "POST")@RequestMapping(value = "/queryGateWay", method = RequestMethod.POST)@ResponseBodypublic Object queryGateWay() {QueryGatewayResp queryGatewayResp = ammeterToolsUtil.queryGateway();return queryGatewayResp;}/*** 网关注册* @return*/@ApiOperation(value="网关注册",notes="网关注册" ,httpMethod = "POST")@RequestMapping(value = "/registGateway", method = RequestMethod.POST)@ResponseBodypublic Object registGateway() {RegistGatewayReq registGatewayReq = new RegistGatewayReq();registGatewayReq.setGatewayId((long)0);//网关idregistGatewayReq.setAddress("sjz");//网关安装地址registGatewayReq.setGatewayName("test001");registGatewayReq.setTime("2018-08-08");RegistGatewayResp regist = ammeterToolsUtil.registGateway(registGatewayReq);return regist;}/*** 网关修改* @return*/@ApiOperation(value="网关修改",notes="网关修改" ,httpMethod = "POST")@RequestMapping(value = "/POSTWayEdit", method = RequestMethod.POST)@ResponseBodypublic Object getWayEdit() {RegistGatewayReq registGatewayReq = new RegistGatewayReq();registGatewayReq.setGatewayId((long)527);//网关idregistGatewayReq.setAddress("sjz888");//网关安装地址registGatewayReq.setGatewayName("test888");registGatewayReq.setTime("2018-08-08");RegistGatewayResp regist = ammeterToolsUtil.registGateway(registGatewayReq);return regist;}/*** 删除网关* @return*/@ApiOperation(value="删除网关",notes="删除网关" ,httpMethod = "POST")@RequestMapping(value = "/deleteGateway", method = RequestMethod.POST)@ResponseBodypublic Object deleteGateway() {DeleteGatewayReq deleteGatewayReq = new DeleteGatewayReq();List<Long> gatewayIdList = new ArrayList<>();gatewayIdList.add((long)535);deleteGatewayReq.setGatewayIdList(gatewayIdList);DeleteGatewayResp deleteGatewayResp = ammeterToolsUtil.deleteGateway(deleteGatewayReq);return deleteGatewayResp;}/*** 查询网关下设备* @return*/@ApiOperation(value="查询网关下设备",notes="查询网关下设备" ,httpMethod = "POST")@RequestMapping(value = "/queryDevice", method = RequestMethod.POST)@ResponseBodypublic Object queryDevice() {QueryDeviceReq queryDeviceReq = new QueryDeviceReq();queryDeviceReq.setGatewayId((long)527);QueryDeviceResp queryDeviceResp = ammeterToolsUtil.queryDevice(queryDeviceReq);return queryDeviceResp;}/*** 网关下添加设备* @return*/@ApiOperation(value="网关下添加设备",notes="网关下添加设备" ,httpMethod = "POST")@RequestMapping(value = "/addDevice", method = RequestMethod.POST)@ResponseBodypublic Object addDevice() {AddDeviceReq addDeviceReq = new AddDeviceReq();addDeviceReq.setDeviceNo("设备编号——001");addDeviceReq.setDeviceName("设备名称");//addDeviceReq.setDeviceLabelInfoList();addDeviceReq.setGatewayId((long)534);addDeviceReq.setDeviceId((long)0);/* addDeviceReq.setDeviceTypeId();addDeviceReq.setOrderInGateway();addDeviceReq.setProtocolInfoList();addDeviceReq.setProtocolTypeId();addDeviceReq.setStartAddr();addDeviceReq.setTempletTypeId();*/AddDeviceResp addDeviceResp = ammeterToolsUtil.addDevice(addDeviceReq);return addDeviceResp;}
}

4.效果展示

<dependency><groupId>com.drore.cloud</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.4</version></dependency>

使用该依赖替换集成swagger2时使用的UI依赖即可。

当时按照spring boot项目集成的插件进行设置,但是在接口名称上没有生成,还有待研究,先写下一个不太完整的日志。

转载于:https://www.cnblogs.com/kongweiteng/p/7443820.html

swagger2-接口文档相关推荐

  1. springboot集成Swagger2接口文档

    <!-- Swagger 接口文档 --><dependency><groupId>io.springfox</groupId><artifact ...

  2. swagger2接口文档

    文章目录 简介 Open API Swagger简介 Spring-fox 入门案例 第一步:导入依赖 第二步:编写controller类 第三步:编写启动类 第四步:运行启动类并访问ui页面 Swa ...

  3. SSM 配置 Swagger2 接口文档引擎

    POM 增加 Swagger2 所需依赖,pom.xml 配置如下: <!-- Swagger2 Begin --> <dependency><groupId>io ...

  4. knife4j 替代swagger2接口文档管理

    1 引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j ...

  5. 实体类 接口_spring-boot-route(五)整合Swagger生成接口文档

    目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有 ...

  6. 整合swagger2生成Restful Api接口文档

    整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...

  7. SpringBoot 使用Swagger2打造在线接口文档(附源代码)

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...

  8. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

  9. idea swagger生成接口文档_Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据...

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

  10. Swagger2生成在线接口文档并导出pdf文件

    文章目录 一,配置 1,pom依赖 2,通用配置 二,注解 三,主题 1,默认主题效果 2,添加依赖 3,添加配置 4,启动看效果 四,token验证 方法1,所有接口上添加 方法2,全局统一添加 五 ...

最新文章

  1. python使用fpdf生成pdf文件:配置多种语言字体写入多种文字
  2. 有传闻说,写好总结可以升职加薪?
  3. 2013年蓝桥杯题集C本科B
  4. SQLite基础知识学习
  5. CentOS卸载自带的JDK
  6. Android代码如何监控apk安装 卸载 替换
  7. android音频框架
  8. 无源晶振(Crystal)的负载电容
  9. crispr基因编辑_用CRISPR编程基因组
  10. Leetcode-机器人大冒险 (python)
  11. Android Kiosk 模式
  12. 女星长发如雪 上演现代版白发魔女传(组图)
  13. Trajectory generation for quadrotor while tracking a moving target in cluttered environment
  14. 英语单词复数到底读s还是z?
  15. 【分治】剑指 Offer 33. 二叉搜索树的后序遍历序列
  16. eclipse中遇到的问题(2)
  17. 机器学习第四课:SVM前置知识点(凸优化问题)
  18. 计算机丢失d3dcompile,电脑d3dcompiler43.dll文件丢失怎么办 文件丢失解决方法
  19. “.CHM文件”无法打开
  20. 华为云计算学习:FusionManager之ManageOne

热门文章

  1. 第七章节 类的抽象(接口)
  2. 排列:计算1!+2*2!+3*3!+...+n*n!
  3. npm设置仓库register
  4. python keyboard库_python库 pywinio虚拟键盘使用
  5. 腾讯校园招聘笔试 2019-8-17 第四题 另一种解法
  6. c++排序算法之 快速排序
  7. 指针和引用的相同与不同
  8. bzoj 3262: 陌上花开(cdq分治)
  9. istio使用教程和示例(导流,请求路由,访问拒绝,黑白名单,限速)
  10. python应用系列教程——python的GUI界面编程Tkinter全解