Swagger配置扫描接口以及开关
配置扫描接口
package com.jie.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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 {
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//指导要扫描接口的位置
.apis(RequestHandlerSelectors.basePackage("com.jie.controller"))
//设置全部扫描全部接口
//.apis(RequestHandlerSelectors.any())
//设置过滤路径
//.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
Contact contact = new Contact("jie", "https://www.cnblogs.com/OfflineBoy/", "sb@qq.com");
return new ApiInfo("Swagger 标题测试",
"佛祖保佑",
"1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
在配置后 swgger页面只有hellocontroller了(没有boot默认的error接口了)

实现swagger在开发环境时使用,分布时不使用
编写application-dev.properties 为开发环境 此时我们需要开启swagger
server.port=8081
swagger.enable=true
编写application-pro.properties 为生产环境,此时需要我们关闭swagger
server.port=8082
swagger.enable=false
swagger配置类通过注解@ConfigurationProperties 获得enable值来决定是否开启功能
package com.jie.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
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;
@Component
@Data
@Configuration
@EnableSwagger2 //开启swagger2
@ConfigurationProperties(prefix = "swagger")//通过该手段需要get set 方法以及@Component告诉spring交给他管理
public class SwaggerConfig {
private boolean enable;
@Bean
public Docket docket(){
System.out.println(enable);
//获取项目环境
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(enable)
.select()
//指导要扫描接口的位置
.apis(RequestHandlerSelectors.basePackage("com.jie.controller"))
//设置全部扫描全部接口
//.apis(RequestHandlerSelectors.any())
//设置过滤路径
//.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo(){
Contact contact = new Contact("jie", "https://www.cnblogs.com/OfflineBoy/", "sb@qq.com");
return new ApiInfo("Swagger 标题测试",
"佛祖保佑",
"1.0",
"urn:tos",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
我们先激活开发环境

运行发现swagger是开启的

激活生产环境

成功关闭


浙公网安备 33010602011771号