4.集成swagger
首先引入依赖
<!--swagger增强文档-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
新建SwaggerConfig.java 配置类
package com.chase.frame.config;
import org.springframework.beans.factory.annotation.Value;
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.EnableSwagger2WebMvc;
import java.util.ArrayList;
import java.util.List;
/**
* @author chase
* @Desc
* @date 2022/2/8 10:01
*/
@Configuration
@EnableSwagger2WebMvc
public class SwaggerConfig {
@Value("${swagger.enabled}")
private Boolean enabled;
private static ApiInfo apiInfo;
private static List<SecurityContext> securityContextList;
private static List<SecurityReference> securityReferenceList;
private static List<SecurityScheme> securitySchemeList;
static {
apiInfo = new ApiInfoBuilder()
.title("demo系统")
.contact(new Contact("yy", "http://www.yy.com", "yy@yy.com"))
.description("demo系统接口文档")
.version("1.0.0")
.build();
securityReferenceList = new ArrayList<>();
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
securityReferenceList.add(new SecurityReference("token", authorizationScopes));
securityContextList = new ArrayList<>();
securityContextList.add(
SecurityContext.builder()
.securityReferences(securityReferenceList)
.forPaths(PathSelectors.regex("^(?!auth).*$"))
.build());
securitySchemeList = new ArrayList<>();
securitySchemeList.add(new ApiKey("token", "token", "header"));
}
@Bean
public Docket docket() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("manage")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.chase.frame.controller"))
.build()
.securitySchemes(securitySchemeList)
.securityContexts(securityContextList)
.enable(true);
}
/* @Bean
public Docket docket1() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("app")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.yy.youbimanage.controller.web"))
.build()
.securitySchemes(securitySchemeList)
.securityContexts(securityContextList)
.enable(true);
}*/
}
yml配置swagger开启开关
路由拦截过滤接口文档的请求地址
输入域名:端口/doc.html
集成成功