在pom.xml中添加maven依赖

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger2</artifactId>

    <version>2.7.0</version>

</dependency>

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger-ui</artifactId>

    <version>2.7.0</version>

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

添加Swagger配置类:

package com.test.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
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; /**
*Swagger2配置类
*/ @Configuration
@EnableSwagger2//启用Swagger2
public class Swaggers { @Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描所有有注解的api
.paths(PathSelectors.any())
.build();
} /**
* 首页描述
* @return
*/
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("电话外呼api文档")
.description("rest接口")
.build();
}
}

添加controller类

package com.text.crm.callout.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import com.text.callout.model.WarnCallOut;
import com.text.callout.service.WarnCallOutService; @RestController
@RequestMapping("/warn")
@Api(tags="电话外呼信息保存接口")
public class WarnCallOutController{ @Autowired
private WarnCallOutService warnCallOutService; /**
*@param WarnCallOut电话外呼对象
*@return
*/
@ApiOperation("保存电话外呼信息")
@RequestMapping(value = "/add",method=RequestMethod.POST)
public String addWarnCallOut(WarnCallOut warnCallOut){
return warnCallOutService.addWarnCallOut(warnCallOut);
}
}

添加POJO类

package com.test.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; @ApiModel("电话外呼对象")
public class WarnCallOut {
@ApiModelProperty(value="序号,从1开始",hidden=true)
private Long id;
@ApiModelProperty(value="姓名",required=true)
private String name;
@ApiModelProperty(value="需要外乎的号码,本地号码加9,外地号码加90,多个号码用|隔开,如913800000000|9013900000000",required=true)
private String phonenum;
@ApiModelProperty(value="操作时间,如2018-12-06 22:00:00",required=true)
private String requesttime; public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhonenum() {
return phonenum;
}
public void setPhonenum(String phonenum) {
this.phonenum = phonenum;
}
public String getRequesttime() {
return requesttime;
}
public void setRequesttime(String requesttime) {
this.requesttime = requesttime;
}
}

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

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

package com.test.configuration;

import io.swagger.annotations.ApiOperation;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.util.UriComponentsBuilder; import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
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.spring.web.paths.Paths;
import springfox.documentation.spring.web.paths.AbstractPathProvider;
import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.List;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.context.request.async.DeferredResult; /**
*Swagger2配置类
*/ @Configuration
@EnableSwagger2//启用Swagger2,生产环境记得注释掉
public class Swaggers implements WebMvcConfigurer{ @Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描所有有注解的api
.paths(PathSelectors.any())
.build();
} /**
* 首页描述
* @return
*/
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("电话外呼api文档")
.description("rest接口")
.build();
} /**
*重写BASE URL
*/
class BasePathAwareRalativePathProvider extends AbstractPathProvider{
private String basePath; public BasePathAwareRalativePathProvider(String basePath){
this.basePath=basePath;
} @Override
protected String applicationPath(){
return basePath;
} @Override
protected String getDocumentationPath(){
return "/";
} @Override
public String getOperationPath(String OperationPath){
UriComponentsBuilder uriComponentsBuilder=UriComponentsBuilder.fromPath("/");
return Paths.removeAdjacentForwardSlashes(uriComponentsBuilder.path("").build().toString());
}
} @Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}; /**
* 跨域支持
* @param corsRegistry
*/
@Override
public void addCorsMappings(CorsRegistry corsRegistry){
corsRegistry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET","POST","PUT","DELETE")
.allowedHeaders("*");
} @Override
public void configurePathMatch(PathMatchConfigurer pathMatchConfigurer){}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer contentNegotiationConfigurer){}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer){};
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer defaultServletHandlerConfigurer){};
@Override
public void addFormatters(FormatterRegistry formatterRegistry){};
@Override
public void addInterceptors(InterceptorRegistry interceptorRegistry){};
@Override
public void addViewControllers(ViewControllerRegistry viewControllerRegistry){};
@Override
public void configureViewResolvers(ViewResolverRegistry viewResolverRegistry){};
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers){};
@Override
public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers){};
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters){};
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters){};
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers){};
@Override
public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers){};
@Override
public Validator getValidator(){
return null;
}
@Override
public MessageCodesResolver getMessageCodesResolver(){
return null;
}
}

还是不行的话,

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

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

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

-----------------------------------------------------------------------------

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. web前端面试第一次[定时器]

    BOM中定时器--计时器 定时器参数两个:(函数,时间(单位ms(1000ms=1s))) 时间设置1s,每过1s执行一次函数 //设置定时器 setInterval(funtion(){ alert ...

  2. 从零开始编写IntelliJ IDEA插件

    写Java代码的时候,经常会涉及到重复性的操作,这个时候就会想要是有这样一个插件就好了,如果是大家都会遇到的场景,IDE或许已经提供了,再不然也有可能有人编写了相关的插件.要是这个操作是你们的编码环境 ...

  3. Flask - 上下文管理(核心)

    参考 http://flask.pocoo.org/docs/1.0/advanced_foreword/#thread-locals-in-flask https://zhuanlan.zhihu. ...

  4. 警示框UIAlertController的使用(看完马上会用!!)

    本文尽量图文并茂,并且提供对应的代码,确保看到这篇文章马上能够上手使用UIAlertController控件.-我要兑现我的务实宣言- 本文构思: 1.出具效果图,通过这种最直接方式了解该控件的展示效 ...

  5. iOS收起键盘

    在UIViewController中收起键盘,有四种代码方式: 1.让相应的控件放弃第一响应者 /** 放弃第一响应者 */ [self.nameTextField resignFirstRespon ...

  6. ISAP 算法

    Dinic 算法其实已经足够处理大多数的网络流了,但还不够快.接下来介绍的是最优秀的增广路最大流算法:ISAP(Improve Shortest Argumenting Path).它的时间复杂度上界 ...

  7. 三 Spring对于延迟加载问题的解决

    Spring提供了延迟加载问题的解决方法 什么是延迟加载? 延迟加载:lazy(懒加载) 执行到该行代码的时候不会发送语句,真正使用这个对象的属性的时候才会发送sql语句进行查询. 类级别延迟加载:指 ...

  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表单:表单控件大小

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. HTML有2种路径的写法:绝对路径和相对路径

    HTML有2种路径的写法:绝对路径和相对路径 2016年11月30日 17:51:20 Bolon0708 阅读数 21775   版权声明:本文为博主原创文章,未经博主允许不得转载. https:/ ...

  10. 信号强度(RSSI)知识整理

    来源: https://www.cnblogs.com/lele/articles/2832885.html 为什么无线信号(RSSI)是负值 答:其实归根到底为什么接收的无线信号是负值,这样子是不是 ...