Swagger配置扫描接口及开关

Docket.select()

//RequestHandlerselectors,配置要扫描接口的方式
//basePackage:指定要扫描的包
//any():扫描全部
//none():不扫描
//withClassAnnotation:扫描类上的注解,多数是一个注解的反射对象
//withMethodAnnotation:扫描方法上的注解

过滤 paths

paths(PathSelectors.ant("/wang/**"))

关闭swagger

enable是否启动swagger, 如果为False, 则swagger不能再浏觉器中访问

@Configuration
@EnableSwagger2     //开启swagger2
public class SwaggerConfig {

    //配置Swagger的Docket的bean实例
    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(false)//enable是否启动swagger, 如果为False, 则swagger不能再浏觉器中访间
                .select()
                //配置扫描接口的方式
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                /*.paths(PathSelectors.ant("/wang/**"))*/
                .build();
    }
    //配置swagger信息=apiInfo
    private ApiInfo apiInfo(){
        //作者信息
        Contact contact = new Contact("测试", "http://localhost:8080/swagger-ui.html#/", "[email protected]");
        return new ApiInfo(
                "Api 文档标题",
                "Api文档描述",
                "v1.0",
                "urn:tos", contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }


}

需求在相应的环境中开启swagger()

我只希望我的Swagger在生产环境中使用,在发布的时候不使用?
●判断是不是生产环境flag = false
●注入enable (flag)

  • Environment (import org.springframework.core.env.Environment;)
  • acceptsProfiles
  • Profiles.of
package com.example.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
@EnableSwagger2     //开启swagger2
public class SwaggerConfig {

    //配置Swagger的Docket的bean实例
    @Bean
    public Docket docket(Environment environment){
        //设置要显示的swagger环境
        Profiles profiles = Profiles.of("dev","test");
        //通过environment.acceptsProfiles判断是否处在自己设置的环境当中
        boolean b = environment.acceptsProfiles(profiles);

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(b)//enable是否启动swagger, 如果为False, 则swagger不能再浏觉器中访间
                .select()
                //配置扫描接口的方式
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                /*.paths(PathSelectors.ant("/wang/**"))*/
                .build();
    }
    //配置swagger信息=apiInfo
    private ApiInfo apiInfo(){
        //作者信息
        Contact contact = new Contact("测试", "http://localhost:8080/swagger-ui.html#/", "[email protected]");
        return new ApiInfo(
                "Api 文档标题",
                "Api文档描述",
                "v1.0",
                "urn:tos", contact,
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList());
    }


}

切换之后,修改端口号访问

spring.profiles.active=dev

在这里插入图片描述

没有开启页面

Could not render e, see the console.

你可能感兴趣的:(swagger)