Java之Swagger配置扫描接口以及开关案例讲解

1. Swagger--配置扫描接口及开关

1.1 配置扫描接口

SwaggerConfig.java

    /**
     * 配置docket以配置Swagger具体参数
     */
    @Bean
    public Docket docket() {
        /*
         * 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
         * basePackage(final String basePackage) // 根据包路径扫描接口(最常用)
         * any() 扫描所有,项目中的所有接口都会被扫描到
         * none() 不扫描接口
         * 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求
         * withMethodAnnotation(final Class<? extends Annotation> annotation)
         * 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
         * withClassAnnotation(final Class<? extends Annotation> annotation)
         */
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).build();
    }

运行结果(因为现在只扫描了com.tian.swagger.controller 的包 所以只会有一个HelloController):

1.2 配置接口扫描过滤

SwaggerConfig.java

    /**
     * 配置docket以配置Swagger具体参数
     */
    @Bean
    public Docket docket() {
        /*
         * 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
         * basePackage(final String basePackage) // 根据包路径扫描接口
         * any() 扫描所有,项目中的所有接口都会被扫描到
         * none() 不扫描接口
         * 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求
         * withMethodAnnotation(final Class<? extends Annotation> annotation)
         * 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
         * withClassAnnotation(final Class<? extends Annotation> annotation)
         */
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).paths(PathSelectors.ant("/tian/**")).build();
    }

这里只选择了请求路径包含了/tian下的所有接口

这里可以选择的参数有:

  • any() // 任何请求都扫描
  • none() // 任何请求都不扫描
  • regex(final String pathRegex) // 通过正则表达式控制
  • ant(final String antPattern) // 通过ant()控制

1.3 配置Swagger开关

enable(boolean) 表示是否启用Swagger 默认为true(启用) 如果为false,则Swagger不能在游览器中访问

SwaggerConfig.java

    /**
     * 配置docket以配置Swagger具体参数
     */
    @Bean
    public Docket docket() {
        // enable(boolean) 表示是否启用Swagger 默认为true(启用) 如果为false,则Swagger不能在游览器中访问
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(false).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).paths(PathSelectors.ant("/tian/**")).build();
    }

运行结果:

1.4 我只希望我的Swagger在生产环境中使用,在发布的时候不使用。怎么实现?

  1. 判断是不是生产环境,是则 flag = false,否则 flag = true
  2. 注入enable(flag)

1.4.1 准备工作,新建2个配置文件

application.properties

spring.profiles.active=dev

application-dev.properties

server.port=8081

application-pro.properties

server.port=8082

1.4.2 代码实现

SwaggerConfig.java

    /**
     * 配置docket以配置Swagger具体参数
     */
    @Bean
    // org.springframework.core.env.Environment
    public Docket docket(Environment environment) {
        // 设置要显示swagger的环境 这里是 dev 和 test 环境
        // org.springframework.core.env.Profiles
        Profiles profiles = Profiles.of("dev", "test");
        // 判断当前是否处于该环境
        // 通过 enable() 接收此参数判断是否要显示
        boolean flag = environment.acceptsProfiles(profiles);

        // enable(boolean) 表示是否启用Swagger 默认为true(启用) 如果为false,则Swagger不能在游览器中访问
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(flag).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).paths(PathSelectors.ant("/tian/**")).build();
    }

启动测试01:Profiles 里面包含 dev

启动测试01:Profiles 里面不包含 dev

Profiles profiles = Profiles.of("test");

到此这篇关于Java之Swagger配置扫描接口以及开关案例讲解的文章就介绍到这了,更多相关Java之Swagger配置扫描接口以及开关内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java并发之Lock接口的深入讲解

    目录 Juc中各种各样锁信息 synchronized面临缺点 Lock接口 对比 Lock和tryLock的区别 总结 Juc中各种各样锁信息 在java的juc包为我们提供了各种各样的锁信息.如果细心来看其大部分都会实现一个名为LOCK的接口信息本文皆在帮你回顾Lock信息: 通过本文你将了解到如下内容: 1.Lock和synchronized的对比 2.Lock中常见API的总结 synchronized面临缺点 锁的出现主要是为了保证在并发访问共享资源时不出现错. 在java中如果不考虑

  • 一篇文章带你了解Java基础-抽象

    目录 Java基础知识(抽象) 抽象 抽象定义 abstract的使用 定义抽象类 抽象类的一些注意点 总结 Java基础知识(抽象) 抽象 抽象是从众多的事物中抽取出共同的.本质性的特征,而舍弃其非本质的特征的过程.具体地说,抽象就是人们在实践的基础上,对于丰富的感性材料通过去粗取精.去伪存真.由此及彼.由表及里的加工制作,形成概念.判断.推理等思维形式,以反映事物的本质和规律的方法. 抽象定义 在继承过程中,我们知道父类的方法可以子类进行重写,而每个子类各自的实现都不尽相同.就好比动物都有吃

  • 一篇文章带你了解Java基础-接口

    目录 Java基础知识(接口) 接口 接口的定义 接口和抽象的区别 接口的格式 接口中的主要成分 接口的案例 接口与接口的关系 JDK 8之后的接口新增方法 总结 Java基础知识(接口) 接口 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 接口的定义 接口: 在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口

  • 一篇文章带你了解java泛型--泛型类,泛型方法,泛型接口

    目录 Java 泛型 Java 泛型是什么 泛型类 泛型类的格式 泛型类举例 泛型方法 泛型方法的格式 泛型方法举例 泛型接口 泛型接口的格式 泛型接口举例 泛型接口实现类: 测试接口类: 打印结果: 总结 Java 泛型 Java 泛型是什么 官方定义: 泛型是Java SE 1.5的新特性,泛型的本质就是参数化类型,也就是说所操作的数据类型被指定为一个参数 这种参数类型可以用在类.接口和方法的创建中,分别成为泛型类.泛型接口.泛型方法 优缺点: ​ 优点:可以不用再类型转换了 ​ 缺点:降低

  • java中的基础运算符

    目录 一.算术运算符 二.关系运算符 三.位运算和逻辑运算符 四.赋值运算符 一.算术运算符 算术运算符的作用和在数学中的作用一样,主要的算术运算符有以下几种 1.+加 2.-减 3.*乘 4./除 5.%取余 其中加.减.乘.除的用法同数学中的相同,不过需要注意的是 / 和 % 的区别:两个数据做除法,/取结果的商,%取结果的余数.除了这五种还有以下两种: ++自增:变量的值加1 – 自减:变量的值减1 使用时需要注意以下几点: ​ 1.++和-- 既可以放在变量的后边,也可以放在变量的前边.

  • Java之Swagger配置扫描接口以及开关案例讲解

    1. Swagger--配置扫描接口及开关 1.1 配置扫描接口 SwaggerConfig.java /** * 配置docket以配置Swagger具体参数 */ @Bean public Docket docket() { /* * 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口 * basePackage(final String basePackage) // 根据包路径扫描接口(最常用) * any() 扫描所有,项目中的所

  • Java之SSM中bean相关知识汇总案例讲解

    bean 的生命周期 对象创建 实例化Bean对象,默认选择无参构造方法,如果只有一个有参构造那么调用有参构造,如果只有多个有参构造那么报错,除非其中一个有参构造添加了@AutoWired注解: 设置Bean的属性: 依赖注入以及判断是否实现了Aware相关接口(BeanNameAware, BeanFactoryAware, ApplicationContextAware) 如果这个 Bean 关联了 BeanPostProcessor 接口,将会调用BeanPostProcessor.pos

  • Java生成pdf文件或jpg图片的案例讲解

    在一些业务场景中,需要生成pdf文件或者jpg图片,有时候还需要带上水印.我们可以事先用freemarker定义好html模板,然后把模板转换成pdf或jpg文件. 同时freemarker模板还支持变量的定义,在使用时可以填充具体的业务数据. 1.Maven导包 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</ar

  • 深入浅析java web log4j 配置及在web项目中配置Log4j的技巧

    在上篇文章给大家介绍了Java log4j详细教程,本文给大家介绍java web log4j配置及web项目中配置log4j的技巧.具体详情请看下文吧. 首先给大家提供log4j.jar下载:http://logging.apache.org/log4j/1.2/download.html 一.java web项目使用log4j 1.在web.xml文件中添加 <!-- 配置log4j --> <context-param> <param-name>webAppRoo

  • 浅谈Java 三种方式实现接口校验

    本文介绍了Java 三种方式实现接口校验,主要包括AOP,MVC拦截器,分享给大家,具体如下: 方法一:AOP 代码如下定义一个权限注解 package com.thinkgem.jeesite.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import j

  • Spring Boot 使用 Swagger 构建 RestAPI 接口文档

    源码地址:https://github.com/laolunsi/spring-boot-examples 目前SpringBoot常被用于开发Java Web应用,特别是前后端分离项目.为方便前后端开发人员进行沟通,我们在SpringBoot引入了Swagger. Swagger作用于接口,让接口数据可视化,尤其适用于Restful APi 本节分两部分介绍,第一部分是SpringBoot引入Swagger的两种方式,第二部分是详细介绍在Web接口上应用Swagger的注解. 本篇文章使用Sp

  • 教你利用springboot集成swagger并生成接口文档

    效果图 实现步骤 1.maven中引入jar包,不同版本的swagger可能页面效果不一样. <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId&g

  • Java集成swagger文档组件

    一:简介   Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.Swagger 让部署管理和使用功能强大的API从未如此简单. 二:集成swagger 1.引入pom.xml文件包(导入4个jar包) 注意:jdk1.8以上才能运行swagger2 <!--swagger--> <dependency

  • java集成开发SpringBoot生成接口文档示例实现

    目录 为什么要用Swagger ? Swagger集成 第一步: 引入依赖包 第二步:修改配置文件 第三步,配置API接口 Unable to infer base url For input string: "" Swagger美化 第一步: 引入依赖包 第二步:启用knife4j增强 Swagger参数分组 分组使用说明 1.在bean对象的属性里配置如下注释 2.在接口参数的时候加入组规则校验 小结 大家好,我是飘渺. SpringBoot老鸟系列的文章已经写了两篇,每篇的阅读反

  • SpringBoot使用swagger生成api接口文档的方法详解

    目录 前言 具体例子 maven配置 项目application.yml配置 springApplication添加swagger注解 在控制层添加swagger注解 前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot系列文章: spring boot项目使用mybatis-plus代码生成实例 具体例子 maven配置 在使用之前,我们需要添加s

随机推荐