配置扫描接口及开关

该博客介绍了如何配置Swagger,包括扫描接口的选择,如按包名或特定注解进行扫描,并展示了如何根据环境条件启用或禁用Swagger。在生产环境中,通过判断当前环境是否为预设环境(如dev或test)来决定Swagger是否启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Swagger配置扫描接口

沿用上一篇博客项目

Docket.select();

 @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //RequestHandlerSelectors:配置要扫描接口的方式
                //basePackage("包名"):指定要扫描的包
                //any():扫描全部
                //none():不扫描
                //withClassAnnotation():扫描类上的注解,参数是一个注解的反射对象
                //withMethodAnnotation():扫描方法上的注解
                .apis(RequestHandlerSelectors.basePackage("com.massimo.swagger.controller"))
                .paths(PathSelectors.ant("/massimo/**"))
                .build();
    }

二、配置是否启动Swagger

@Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //enable(),是否启动Swagger,默认为true,如果为false,则Swagger不能在浏览器中访问
                .enable(false)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.massimo.swagger.controller"))
                .build();
    }

效果
在这里插入图片描述

三、根据环境使用Swagger

要求Swagger在生产环境中使用,在发布环境中不使用
思路:
1、判断是不是生产环境 flag = false
注入enable(flag)

3.1、添加环境

在这里插入图片描述

3.2、SwaggerConfig类

@Bean
    public Docket docket(Environment environment){

        //设置要显示的Swagger环境
        Profiles profiles = Profiles.of("dev", "test");
        //通过environment.acceptsProfiles()判读是否处在自己设定的环境中
        boolean flag = environment.acceptsProfiles(profiles);

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //enable(),是否启动Swagger,默认为true,如果为false,则Swagger不能在浏览器中访问
                .enable(flag)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.massimo.swagger.controller"))
                .build();
    }

效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值