1、引入POM依赖

  1. <properties>
  2. <swagger-annotations.version>1.5.13</swagger-annotations.version>
  3. <springfox-swagger.version>2.7.0</springfox-swagger.version>
  4. </properties>
  5.  
  6. <dependencyManagement>
  7. <dependencies>
  8. <dependency>
  9. <groupId>io.swagger</groupId>
  10. <artifactId>swagger-annotations</artifactId>
  11. <version>${swagger-annotations.version}</version>
  12. </dependency>
  13. <dependency>
  14. <groupId>io.springfox</groupId>
  15. <artifactId>springfox-swagger-ui</artifactId>
  16. <version>${springfox-swagger.version}</version>
  17. </dependency>
  18. <dependency>
  19. <groupId>io.springfox</groupId>
  20. <artifactId>springfox-swagger2</artifactId>
  21. <version>${springfox-swagger.version}</version>
  22. </dependency>
  23. </dependencies>
  24. </dependencyManagement>

2、装配swagger

  1. package com.tomato.boss.common.autoconfig;
  2.  
  3. import java.time.LocalDateTime;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  8. import org.springframework.boot.context.properties.ConfigurationProperties;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.Configuration;
  11.  
  12. import lombok.Getter;
  13. import lombok.Setter;
  14. import springfox.documentation.builders.ApiInfoBuilder;
  15. import springfox.documentation.builders.ParameterBuilder;
  16. import springfox.documentation.builders.PathSelectors;
  17. import springfox.documentation.builders.RequestHandlerSelectors;
  18. import springfox.documentation.schema.ModelRef;
  19. import springfox.documentation.service.ApiInfo;
  20. import springfox.documentation.service.Parameter;
  21. import springfox.documentation.spi.DocumentationType;
  22. import springfox.documentation.spring.web.plugins.Docket;
  23. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  24.  
  25. @Configuration
  26. @EnableSwagger2
  27. @ConditionalOnProperty("swagger.conf.host")
  28. @ConfigurationProperties("swagger.conf")
  29. @Setter
  30. @Getter
  31. public class Swagger2AutoConfiguration {
  32. private String groupName;
  33. private String basePackage;
  34. private String title;
  35. private String host;
  36. private String desc;
  37. private String serviceUrl;
  38. private String version;
  39.  
  40. @Bean
  41. public Docket createRestApi() {
  42. // 添加header头
  43. List<Parameter> pars = new ArrayList<Parameter>() {
  44. private static final long serialVersionUID = 1L;
  45. { add(new ParameterBuilder().name("gsid").description("全局会话ID(open服务不需要)").modelRef(new ModelRef("string")).parameterType("header").required(false).build()); }
  46. };
  47.  
  48. return new Docket(DocumentationType.SWAGGER_2)
  49. .groupName(groupName)
  50. .apiInfo(apiInfo())
  51. .host(host)
  52. .select()
  53. .apis(RequestHandlerSelectors.basePackage(basePackage))
  54. .paths(PathSelectors.any())
  55. .build()
  56. .globalOperationParameters(pars);
  57. }
  58.  
  59. private ApiInfo apiInfo() {
  60. return new ApiInfoBuilder()
  61. .title(title)
  62. .description(desc)
  63. .termsOfServiceUrl(serviceUrl)
  64. .version(version + LocalDateTime.now())
  65. .build();
  66. }
  67. }

3、properties配置

  1. swagger.conf.desc=api地址:http://${swagger.conf.host}/
  2. swagger.conf.service-url=http://${swagger.conf.host}/
  3. swagger.conf.title=BOSS项目组${swagger.conf.group-name}接口
  4.  
  5. #注册中心列表直接跳转到swagger页面
  6. eureka.instance.status-page-url=http://${swagger.conf.host}/swagger-ui.html
  7.  
  8. swagger.conf.host=bosstest.xx.com/api/sso
  9. swagger.conf.group-name=boss-sso-rest
  10. swagger.conf.base-package=com.tomato.boss.sso.rest
  11. swagger.conf.version=1.0

当然,现在可以引入官方的start来自动注解

  1. <dependency>
  2. <groupId>com.spring4all</groupId>
  3. <artifactId>swagger-spring-boot-starter</artifactId>
  4. <version>1.7.0.RELEASE</version>
  5. </dependency>

当引入Zuul后可以在zuul层进行doc的集成,具体的实现方式可以参考:

https://my.oschina.net/didispace/blog/1818417

spring-boot 1.X集成swagger的更多相关文章

  1. 15、Spring Boot 2.x 集成 Swagger UI

    1.15.Spring Boot 2.x 集成 Swagger UI 完整源码: Spring-Boot-Demos 1.15.1 pom文件添加swagger包 <swagger2.versi ...

  2. Spring boot 多模块项目 + Swagger 让你的API可视化

    Spring boot 多模块项目 + Swagger 让你的API可视化 前言 手写 Api 文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不 ...

  3. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  4. Spring Boot HikariCP 一 ——集成多数据源

    其实这里介绍的东西主要是参考的另外一篇文章,数据库读写分离的. 参考文章就把链接贴出来,里面有那位的代码,简单明了https://gitee.com/comven/dynamic-datasource ...

  5. Spring Boot系列——如何集成Log4j2

    上篇<Spring Boot系列--日志配置>介绍了Spring Boot如何进行日志配置,日志系统用的是Spring Boot默认的LogBack. 事实上,除了使用默认的LogBack ...

  6. Spring Boot项目简单上手+swagger配置+项目发布(可能是史上最详细的)

    Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properti ...

  7. 【ELK】4.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版+kibana管理ES的index操作

    spring boot 2.X集成ES 进行CRUD操作  完整版 内容包括: ============================================================ ...

  8. 14、Spring Boot 2.x 集成 Druid 数据源

    14.Spring Boot 2.x 集成 Druid 数据源 完整源码: Spring-Boot-Demos

  9. 12、Spring Boot 2.x 集成 MongoDB

    1.12 Spring Boot 2.x 集成 MongoDB 完整源码: Spring-Boot-Demos

  10. 11、Spring Boot 2.x 集成 HBase

    1.11 Spring Boot 2.x 集成 HBase 完整源码: Spring-Boot-Demos

随机推荐

  1. ERP产品销售发货判断库存功能(四十二)

    产品数量的前端(键盘抬起的事件): <td> <input type="text" name="proCount" onkeyup=" ...

  2. 委托----Func和Action

    平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Say后 ...

  3. Python open详解

    一.打开文件的模式有: 1.r,只读模式[默认]. 2.w,只写模式.[不可读,不存在则创建,存在则删除内容] 3.a,追加模式.[可读,不存在则创建,存在则只追加内容] 二.+ 表示可以同时读写某个 ...

  4. 【Java】 剑指offer(53-2) 0到n-1中缺失的数字

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个 ...

  5. 021 使用join()将数组转变为字符串

    1.定义用用法 join() 方法用于把数组中的所有元素放入一个字符串. 元素是通过指定的分隔符进行分隔的. 语法 arrayObject.join(separator) 返回值 返回一个字符串.该字 ...

  6. 085 HBase的二级索引,以及phoenix的安装(需再做一次)

    一:问题由来 1.举例 有A列与B列,分别是年龄与姓名. 如果想通过年龄查询姓名. 正常的检索是通过rowkey进行检索. 根据年龄查询rowkey,然后根据rowkey进行查找姓名. 这样的效率不高 ...

  7. IdentityServer4-用EF配置Client(一)

    一.背景 IdentityServer4的介绍将不再叙述,百度下可以找到,且官网的快速入门例子也有翻译的版本.这里主要从Client应用场景方面介绍对IdentityServer4的应用. 首先简要介 ...

  8. flask源码剖析

    这段时间想重新写个自己的博客系统,又正好在看一些框架源码,然后就想要不顺便写个小框架吧,既然想写框架,要不再顺便写个orm吧,再写个小的异步Server吧..事实证明饭要一口一口吃 先梳理一下flas ...

  9. request.environ.get('wsgi.websocket')

    前言 websocket 是一种html5新的接口,以前服务器推送需要进行ajax等方式进行轮训,对服务器压力较高,随着新标准的推进,使用websocket在推送等方面已经是比较成熟了,并且各个浏览器 ...

  10. 潭州课堂25班:Ph201805201 爬虫高级 第五课 sclapy 框架 日志和 settings 配置 模拟登录(课堂笔记)

    当要对一个页面进行多次请求时, 设   dont_filter = True   忽略去重 在 scrapy 框架中模拟登录 创建项目 创建运行文件 设请求头 # -*- coding: utf-8 ...