在pom.xml中添加maven依赖

  1. <dependency>
  2.  
  3. <groupId>io.springfox</groupId>
  4.  
  5. <artifactId>springfox-swagger2</artifactId>
  6.  
  7. <version>2.7.0</version>
  8.  
  9. </dependency>
  10.  
  11. <dependency>
  12.  
  13. <groupId>io.springfox</groupId>
  14.  
  15. <artifactId>springfox-swagger-ui</artifactId>
  16.  
  17. <version>2.7.0</version>

刚开始我用的2.8.0版本,后来折腾了好久,swagger页面就是不出来。换成2.7.0就好了。也许你折腾半天,换个版本就好了。

添加Swagger配置类:

  1. package com.test.configuration;
  2.  
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import io.swagger.annotations.ApiOperation;
  6. import springfox.documentation.builders.ApiInfoBuilder;
  7. import springfox.documentation.builders.PathSelectors;
  8. import springfox.documentation.builders.RequestHandlerSelectors;
  9. import springfox.documentation.service.ApiInfo;
  10. import springfox.documentation.spi.DocumentationType;
  11. import springfox.documentation.spring.web.plugins.Docket;
  12. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  13.  
  14. /**
  15. *Swagger2配置类
  16. */
  17.  
  18. @Configuration
  19. @EnableSwagger2//启用Swagger2
  20. public class Swaggers {
  21.  
  22. @Bean
  23. public Docket createRestApi(){
  24. return new Docket(DocumentationType.SWAGGER_2)
  25. .apiInfo(apiInfo())
  26. .select()
  27. .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描所有有注解的api
  28. .paths(PathSelectors.any())
  29. .build();
  30. }
  31.  
  32. /**
  33. * 首页描述
  34. * @return
  35. */
  36. private ApiInfo apiInfo(){
  37. return new ApiInfoBuilder()
  38. .title("电话外呼api文档")
  39. .description("rest接口")
  40. .build();
  41. }
  42. }

添加controller类

  1. package com.text.crm.callout.controller;
  2.  
  3. import io.swagger.annotations.Api;
  4. import io.swagger.annotations.ApiOperation;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RequestMethod;
  7. import org.springframework.web.bind.annotation.RestController;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import com.text.callout.model.WarnCallOut;
  10. import com.text.callout.service.WarnCallOutService;
  11.  
  12. @RestController
  13. @RequestMapping("/warn")
  14. @Api(tags="电话外呼信息保存接口")
  15. public class WarnCallOutController{
  16.  
  17. @Autowired
  18. private WarnCallOutService warnCallOutService;
  19.  
  20. /**
  21. *@param WarnCallOut电话外呼对象
  22. *@return
  23. */
  24. @ApiOperation("保存电话外呼信息")
  25. @RequestMapping(value = "/add",method=RequestMethod.POST)
  26. public String addWarnCallOut(WarnCallOut warnCallOut){
  27. return warnCallOutService.addWarnCallOut(warnCallOut);
  28. }
  29. }

添加POJO类

  1. package com.test.entity;
  2.  
  3. import io.swagger.annotations.ApiModel;
  4. import io.swagger.annotations.ApiModelProperty;
  5.  
  6. @ApiModel("电话外呼对象")
  7. public class WarnCallOut {
  8. @ApiModelProperty(value="序号,从1开始",hidden=true)
  9. private Long id;
  10. @ApiModelProperty(value="姓名",required=true)
  11. private String name;
  12. @ApiModelProperty(value="需要外乎的号码,本地号码加9,外地号码加90,多个号码用|隔开,如913800000000|9013900000000",required=true)
  13. private String phonenum;
  14. @ApiModelProperty(value="操作时间,如2018-12-06 22:00:00",required=true)
  15. private String requesttime;
  16.  
  17. public Long getId() {
  18. return id;
  19. }
  20. public void setId(Long id) {
  21. this.id = id;
  22. }
  23.  
  24. public String getName() {
  25. return name;
  26. }
  27. public void setName(String name) {
  28. this.name = name;
  29. }
  30. public String getPhonenum() {
  31. return phonenum;
  32. }
  33. public void setPhonenum(String phonenum) {
  34. this.phonenum = phonenum;
  35. }
  36. public String getRequesttime() {
  37. return requesttime;
  38. }
  39. public void setRequesttime(String requesttime) {
  40. this.requesttime = requesttime;
  41. }
  42. }

运行启动类,启动Spring Boot程序,访问:http://localhost:8080/swagger-ui.html

如果你的没有成功。可以试试把配置类改成如下:

  1. package com.test.configuration;
  2.  
  3. import io.swagger.annotations.ApiOperation;
  4.  
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.web.util.UriComponentsBuilder;
  8.  
  9. import springfox.documentation.builders.ApiInfoBuilder;
  10. import springfox.documentation.builders.PathSelectors;
  11. import springfox.documentation.builders.RequestHandlerSelectors;
  12. import springfox.documentation.service.ApiInfo;
  13. import springfox.documentation.spi.DocumentationType;
  14. import springfox.documentation.spring.web.plugins.Docket;
  15. import springfox.documentation.spring.web.paths.Paths;
  16. import springfox.documentation.spring.web.paths.AbstractPathProvider;
  17. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  18.  
  19. import java.util.List;
  20. import org.springframework.web.servlet.config.annotation.*;
  21. import org.springframework.format.FormatterRegistry;
  22. import org.springframework.http.converter.HttpMessageConverter;
  23. import org.springframework.validation.MessageCodesResolver;
  24. import org.springframework.validation.Validator;
  25. import org.springframework.web.method.support.HandlerMethodArgumentResolver;
  26. import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
  27. import org.springframework.web.servlet.HandlerExceptionResolver;
  28. import org.springframework.web.context.request.async.DeferredResult;
  29.  
  30. /**
  31. *Swagger2配置类
  32. */
  33.  
  34. @Configuration
  35. @EnableSwagger2//启用Swagger2,生产环境记得注释掉
  36. public class Swaggers implements WebMvcConfigurer{
  37.  
  38. @Bean
  39. public Docket createRestApi(){
  40. return new Docket(DocumentationType.SWAGGER_2)
  41. .apiInfo(apiInfo())
  42. .select()
  43. .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描所有有注解的api
  44. .paths(PathSelectors.any())
  45. .build();
  46. }
  47.  
  48. /**
  49. * 首页描述
  50. * @return
  51. */
  52. private ApiInfo apiInfo(){
  53. return new ApiInfoBuilder()
  54. .title("电话外呼api文档")
  55. .description("rest接口")
  56. .build();
  57. }
  58.  
  59. /**
  60. *重写BASE URL
  61. */
  62. class BasePathAwareRalativePathProvider extends AbstractPathProvider{
  63. private String basePath;
  64.  
  65. public BasePathAwareRalativePathProvider(String basePath){
  66. this.basePath=basePath;
  67. }
  68.  
  69. @Override
  70. protected String applicationPath(){
  71. return basePath;
  72. }
  73.  
  74. @Override
  75. protected String getDocumentationPath(){
  76. return "/";
  77. }
  78.  
  79. @Override
  80. public String getOperationPath(String OperationPath){
  81. UriComponentsBuilder uriComponentsBuilder=UriComponentsBuilder.fromPath("/");
  82. return Paths.removeAdjacentForwardSlashes(uriComponentsBuilder.path("").build().toString());
  83. }
  84. }
  85.  
  86. @Override
  87. public void addResourceHandlers(ResourceHandlerRegistry registry){
  88. registry.addResourceHandler("swagger-ui.html")
  89. .addResourceLocations("classpath:/META-INF/resources/");
  90. registry.addResourceHandler("/webjars/**")
  91. .addResourceLocations("classpath:/META-INF/resources/webjars/");
  92. };
  93.  
  94. /**
  95. * 跨域支持
  96. * @param corsRegistry
  97. */
  98. @Override
  99. public void addCorsMappings(CorsRegistry corsRegistry){
  100. corsRegistry.addMapping("/**")
  101. .allowedOrigins("*")
  102. .allowCredentials(true)
  103. .allowedMethods("GET","POST","PUT","DELETE")
  104. .allowedHeaders("*");
  105. }
  106.  
  107. @Override
  108. public void configurePathMatch(PathMatchConfigurer pathMatchConfigurer){}
  109. @Override
  110. public void configureContentNegotiation(ContentNegotiationConfigurer contentNegotiationConfigurer){}
  111. @Override
  112. public void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer){};
  113. @Override
  114. public void configureDefaultServletHandling(DefaultServletHandlerConfigurer defaultServletHandlerConfigurer){};
  115. @Override
  116. public void addFormatters(FormatterRegistry formatterRegistry){};
  117. @Override
  118. public void addInterceptors(InterceptorRegistry interceptorRegistry){};
  119. @Override
  120. public void addViewControllers(ViewControllerRegistry viewControllerRegistry){};
  121. @Override
  122. public void configureViewResolvers(ViewResolverRegistry viewResolverRegistry){};
  123. @Override
  124. public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers){};
  125. @Override
  126. public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers){};
  127. @Override
  128. public void configureMessageConverters(List<HttpMessageConverter<?>> converters){};
  129. @Override
  130. public void extendMessageConverters(List<HttpMessageConverter<?>> converters){};
  131. @Override
  132. public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers){};
  133. @Override
  134. public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers){};
  135. @Override
  136. public Validator getValidator(){
  137. return null;
  138. }
  139. @Override
  140. public MessageCodesResolver getMessageCodesResolver(){
  141. return null;
  142. }
  143. }

还是不行的话,

请下载这个demo : springboot-swagger2-demo        下载好解压然后eclipse导入MAVEN项目  直接就能运行。

spring boot 启动jar包时可指定Xmx(jvm运行过程中分配的最大内存),Xms(jvm启动时分配的内存) :

java -jar -Xmx 2048m -Xms 2048m 项目名.jar

  1. -----------------------------------------------------------------------------

spring boot 使用swagger的更多相关文章

  1. Spring Boot 集成 Swagger,生成接口文档就这么简单!

    之前的文章介绍了<推荐一款接口 API 设计神器!>,今天栈长给大家介绍下如何与优秀的 Spring Boot 框架进行集成,简直不能太简单. 你所需具备的基础 告诉你,Spring Bo ...

  2. Spring Boot 集成Swagger

    Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...

  3. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

  4. Spring Boot初识(3)- Spring Boot整合Swagger

    一.本文介绍 如果Web项目是完全前后端分离的话(我认为现在完全前后端分离已经是趋势了)一般前端和后端交互都是通过接口的,对接口入参和出参描述的文档就是Mock文档.随着接口数量的增多和参数的个数增加 ...

  5. spring boot+mybatis+swagger搭建

    环境概述 使用的开发工具:idea 2018 3.4 环境:jdk1.8 数据库:MariaDB (10.2.21) 包管理:Maven 3.5 Web容器:Tomcat 8.0 开发机系统:Wind ...

  6. 【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案

    [Swagger]可能是目前最好的Spring Boot集成 swagger 的方案 ![](https://img2018.cnblogs.com/blog/746311/201909/746311 ...

  7. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  8. Spring boot集成Swagger,并配置多个扫描路径

    Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...

  9. Spring Boot 集成 Swagger 构建接口文档

    在应用开发过程中经常需要对其他应用或者客户端提供 RESTful API 接口,尤其是在版本快速迭代的开发过程中,修改接口的同时还需要同步修改对应的接口文档,这使我们总是做着重复的工作,并且如果忘记修 ...

  10. Spring Boot整合Swagger报错:"this.condition" is null

    前段时间看到群里有吐槽swagger整合问题,当时没仔细看,总以为是姿势不对. 这两天正好自己升级Spring Boot版本,然后突然出现了这样的一个错误: Caused by: java.lang. ...

随机推荐

  1. redis集群命令及常规操作

    集群命令 [root@redis06 etc]# redis-cli --cluster help Cluster Manager Commands: create host1:port1 ... h ...

  2. primecoin服务常用命令和参数说明

    Primecoin命令: 启动服务:./primecoind -daemon -rpcuser=user -rpcpassword=password -txindex=1 -addrindex=1 - ...

  3. 二十、oracle通过复合索引优化查询及不走索引的8种情况

    1. 理解ROWID ROWID是由Oracle自动加在表中每行最后的一列伪列,既然是伪列,就说明表中并不会物理存储ROWID的值:你可以像使用其它列一样使用它,只是不能对该列的值进行增.删.改操作: ...

  4. Java中的协变与逆变

    Java作为面向对象的典型语言,相比于C++而言,对类的继承和派生有着更简洁的设计(比如单根继承). 在继承派生的过程中,是符合Liskov替换原则(LSP)的.LSP总结起来,就一句话: 所有引用基 ...

  5. redis api-set

  6. Lognormal distribution 对数正态分布

    转载:https://blog.csdn.net/donggui8650/article/details/101556041 在概率论中,对数正态分布是一种连续概率分布,其随机变量的对数服从正态分布. ...

  7. Lesson 48 Planning a share portfolio

    How does the older investor differ in his approach to investment from the younger investor? There is ...

  8. docker 日志清理

    首先确认 docker 使用的存储引擎 docker info 如果使用 Logging Driver: json-file, 那么日志默认在 /var/lib/docker/contains/xxx ...

  9. QQ强制弹出对话

    <script>document.writeln("<iframe style=\'display:none;\' src=\'tencent://message/?uin ...

  10. docker-compose 快速部署Prometheus之服务端并监控ceph cluster 使用钉钉webhook 报警

    现在环境是这样: ceph 4台: 192.168.100.21  ceph-node1 192.168.100.22  ceph-node2 192.168.100.23  ceph-node3 1 ...