SAMXIE 2020-04-17
gradle文件增加
// swagger implementation "io.springfox:springfox-swagger2:2.9.2" implementation "io.springfox:springfox-swagger-ui:2.9.2"
添加配置类SwaggerConfig
package com.zuo.model.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 //添加swagger启用注解 //@Profile({"dev", "test"}) //方式一 //@ConditionalOnProperty(name = "swagger2.enable", havingValue = "true") //方式二 public class SwaggerConfig { //读取yml文件配置 @Value("${swagger2.enable}") private boolean swagger2Enable; /** * .enable() 控制是否进行初始化 * .select() 初始化并返回一个API选择构造器 * .paths(PathSelectors.any()) 设置路径筛选器 * .apis(RequestHandlerSelectors.basePackage("com.xxx.xxx.xxx")) 添加路径选择条件 * .build(); 构建 * * PathSelectors 类的方法: * - Predicate<String> any():满足条件的路径,该断言总为true * - Predicate<String> none():不满足条件的路径,该断言总为false * - Predicate<String> regex(final String pathRegex):符合正则的路径 * * RequestHandlerSelectors 类的方法: * - Predicate<RequestHandler> any():返回包含所有满足条件的请求处理器的断言,该断言总为true * - Predicate<RequestHandler> none():返回不满足条件的请求处理器的断言,该断言总为false * - Predicate<RequestHandler> basePackage(final String basePackage):返回一个断言(Predicate),该断言包含所有匹配basePackage下所有类的请求路径的请求处理器 */ @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .enable(swagger2Enable) //方式三 .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.zuo.model.controller")) // 注意修改此处的包名 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("项目模板集成系统") .description("API接口文档") .version("1.0.0") .build(); } }
生产环境建议不要启用swagger
配置如下
访问swagger
http://localhost/swagger-ui.html
配置成功