spring swagger 配置
spring swagger 配置
-
依赖
<dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.20</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> -
swagger属性
package com.chaoyang.config.swagger; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Data @Component @ConfigurationProperties(prefix = "swagger2") public class SwaggerProperties { /** * 包扫描的路径 */ private String basePackage; /** * 联系人的名称 */ private String name; /** * 联系人的主页 */ private String url; /** * 联系人的邮箱 */ private String email; /** * API的标题 */ private String title; /** * API的描述 */ private String description; /** * API的版本号 */ private String version; /** * API的服务团队 */ private String termsOfServiceUrl; } -
作为一个组件注册到ioc容器内
package com.chaoyang.config.swagger; 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.*; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.Arrays; import java.util.List; @Configuration @EnableSwagger2 public class SwaggerAutoConfiguration { private SwaggerProperties swaggerProperties; public SwaggerAutoConfiguration(SwaggerProperties swaggerProperties) { this.swaggerProperties = swaggerProperties; } @Bean public Docket docket() { Docket docket = new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage())) .paths(PathSelectors.any()) .build(); // 安全的配置 docket.securitySchemes(securitySchemes()) // 安全规则 .securityContexts(securityContexts()); // 安全配置的上下问 return docket; } /** * api 信息的简介 * * @return */ private ApiInfo apiInfo() { return new ApiInfoBuilder().contact( new Contact(swaggerProperties.getName(), swaggerProperties.getUrl(), swaggerProperties.getEmail()) ) .title(swaggerProperties.getTitle()) .description(swaggerProperties.getDescription()) .version(swaggerProperties.getVersion()) .termsOfServiceUrl(swaggerProperties.getTermsOfServiceUrl()) .build(); } /** * 安全的规则配置 * * @return */ private List<SecurityScheme> securitySchemes() { return Arrays.asList(new ApiKey("Authorization", "Authorization", "Authorization")); } /** * 安全的上下文 * * @return */ private List<SecurityContext> securityContexts() { return Arrays.asList(new SecurityContext( Arrays.asList(new SecurityReference("Authorization", new AuthorizationScope[]{new AuthorizationScope("global", "accessResource")})), PathSelectors.any() )); } } -
yaml 配置
swagger2: basePackage: com.chaoyang.controller name: common测试 email: imock@sina.com title: common测试接口 description: common测试接口 version: V1.0.0 termsOfServiceUrl: www.chaoyangzhichuang.com

浙公网安备 33010602011771号