@Configuration
@EnableSwagger2
public class SwaggerConfig {
// 定义 Swagger Docket bean 实例
@Bean
public Docket docket(Environment environment) {
// 设置激活的 Swagger 环境
Profiles profiles = Profiles.of("dev", "test");
// 判断 environment 是否接受 profiles 的激活条件
boolean flag = environment.acceptsProfiles(profiles);
System.out.println(flag);
// 返回 Swagger Docket 配置
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag) // 根据 flag 状态决定是否激活 Swagger
.select()
.apis(RequestHandlerSelectors.basePackage("com.kuang.swagger.controller"))
.paths(PathSelectors.ant("/kuang/**"))
.build();
}
// 定义 Swagger 基本信息
private ApiInfo apiInfo() {
...
}
}
这段代码是一个配置类,用于设置基本Spring Boot项目中Swagger的配置。
-
@Configuration:标识这是一个Java配置类。
-
@EnableSwagger2:启用Swagger2。
Docket Bean定义
-
public Docket docket(Environment environment)
: 定义一个名为docket
的Spring Bean,它用于配置Swagger的核心接口Docket
。Environment
参数用于访问当前环境配置。
-
Profiles and Environment Check:
-
Profiles.of("dev", "test")
: 定义Swagger在哪些环境下激活,这里是dev
和test
。
-
environment.acceptsProfiles(profiles)
: 检查当前环境是否符合给定的profiles。
-
System.out.println(flag)
: 输出是否启用Swagger。
-
Swagger Docket Configuration:
-
.enable(flag)
: 根据flag
的值启用或禁用Swagger。如果flag
为true,Swagger UI 在指定环境中可用。
-
.select()
: 初始化一个新的API选择构造器,用于控制哪些接口暴露给Swagger。
-
.apis(RequestHandlerSelectors.basePackage("com.kuang.swagger.controller"))
: 指定扫描哪个包下的Controller类。
-
.paths(PathSelectors.ant("/kuang/**"))
: 指定哪些路径的API会被Swagger文档管理。
apiInfo Method定义
-
private ApiInfo apiInfo()
: 该方法用于配置Swagger文档页面的基本信息,如标题、描述、版本等(此处实现省略)