gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 31 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java之Swagger配置扫描接口以及开关案例讲解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

1.1 配置扫描接口

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

SwaggerConfig.java 。

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

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

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

1.2 配置接口扫描过滤

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

SwaggerConfig.java 。

    /**     * 配置docket以配置Swagger具体参数     */    @Bean    public Docket docket() {        /*         * 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口         * basePackage(final String basePackage) // 根据包路径扫描接口         * any() 扫描所有,项目中的所有接口都会被扫描到         * none() 不扫描接口         * 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求         * withMethodAnnotation(final Class
  
   annotation)         * 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口         * withClassAnnotation(final Class
  
   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不能在游览器中访问 。

Java之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();    }

运行结果:

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

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

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

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

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

application.properties 。

spring.profiles.active=dev

application-dev.properties 。

server.port=8081

application-pro.properties 。

server.port=8082

1.4.2 代码实现

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

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 。

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

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

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

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

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

原文链接:https://blog.csdn.net/I_r_o_n_M_a_n/article/details/117609391 。

最后此篇关于Java之Swagger配置扫描接口以及开关案例讲解的文章就讲到这里了,如果你想了解更多关于Java之Swagger配置扫描接口以及开关案例讲解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com