autoconfigure

This commit is contained in:
Crystal.Sea
2021-02-02 23:59:40 +08:00
parent c199b7e1c0
commit a708783f87
3 changed files with 16 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
package org.maxkey.autoconfigure;
import java.util.ArrayList;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
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;
@Configuration
@EnableSwagger2
@EnableOpenApi
@EnableKnife4j
@MapperScan(basePackages = {"org.maxkey"})
public class SwaggerConfig {
@Value("${maxkey.swagger.title}")
String title;
@Value("${maxkey.swagger.description}")
String description;
@Value("${maxkey.swagger.version}")
String version;
@Value("${maxkey.swagger.enable}")
boolean enable;
@Bean
public Docket docket(){
if(enable) {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("org.maxkey")
.and(RequestHandlerSelectors.withClassAnnotation(Api.class))
.and(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)))
.paths(PathSelectors.any())
.build();
}else {
return null;
}
}
// 配置swagger信息
private ApiInfo apiInfo() {
Contact contact = new Contact(
"MaxKey.top",
"https://www.maxkey.top/",
"maxkeysupport@163.com");
return new ApiInfo(
title,
description,
version,
"https://www.maxkey.top/",
contact,
"Apache License, Version 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}