导入swagger3.0.0依赖:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
swagger3.0.0 配置类
package com.green.testlocalhost.config;
import io.swagger.annotations.Api;
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 java.util.Collections;
import java.util.List;
/**
* @description: swagger配置
* @author: zdj
* @date: 2022/11/1 13:51
* @Version:V1.0
**/
@Configuration
public class SwaggerConfiguration {
/**
* 是否启用swagger
*/
@Value("${swagger.show}")
private Boolean enableSwagger;
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.enable(enableSwagger)
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build()
.securitySchemes(securitySchemes())
.securityContexts(securityContexts());
}
private List<SecurityScheme> securitySchemes() {
return Collections.singletonList(new ApiKey("adminToken", "adminToken", "header"));
}
private List<SecurityContext> securityContexts() {
return Collections.singletonList(
SecurityContext.builder()
.securityReferences(defaultAuth())
.operationSelector(null)
.build()
);
}
private List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
return Collections.singletonList(new SecurityReference("adminToken", new AuthorizationScope[]{authorizationScope}));
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("green接口文档")//文档名
.description("接口文档")//文档描述
.contact(new Contact("zdj", "", "18384082074@163.com"))
.version("1.0")//文档版本
.build();
}
}
在资源文件配置是否开启
## swagger配置
swagger:
show: true
启动类模板:
package com.green.testlocalhost;
import com.green.testlocalhost.util.SpringContextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
import tk.mybatis.spring.annotation.MapperScan;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.net.InetAddress;
import java.net.UnknownHostException;
@MapperScan(basePackages = "com.green.testlocalhost.mapper")
@SpringBootApplication
public class TestlocalhostApplication {
private static Logger logger = LoggerFactory.getLogger(TestlocalhostApplication.class);
public static void main(String[] args) throws UnknownHostException {
SpringApplicationBuilder builder = new SpringApplicationBuilder(TestlocalhostApplication.class).headless(false);
ConfigurableEnvironment environment = builder.run(args).getEnvironment();
String activeProfile = SpringContextUtils.getActiveProfile();
logger.info("(♥◠‿◠)ノ゙ 启动成功,环境:"+ activeProfile + ",端口号:" + environment.getProperty("server.port"));
if("true".equals(environment.getProperty("swagger.show")) &&
("loc".equals(activeProfile) || "dev".equals(activeProfile))){
// 获取本地ip地址
String hostAddress = InetAddress.getLocalHost().getHostAddress();
// 本地
String url = "IP访问【swagger接口地址】:http://" + hostAddress + ":" + environment.getProperty("server.port")
+ environment.getProperty("server.servlet.context-path")
+ "/swagger-ui/index.html";
logger.info(url);
// 测试
logger.info("域名访问【swagger接口地址】:https://你的域名即可"+environment.getProperty("server.servlet.context-path")+"/swagger-ui/index.html");
// 设置到粘贴板
String clipStrUrl = "http://" + hostAddress + ":" + environment.getProperty("server.port") + environment.getProperty("server.servlet.context-path") + "/swagger-ui/index.html";
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(clipStrUrl), null);
logger.info("IP访问接口地址已复制到剪切板,【CTRL+V】即可使用!");
}
}
}