• springBoot集成swagger3.0.0


    导入swagger3.0.0依赖:

    <dependency>
                <groupId>io.springfoxgroupId>
                <artifactId>springfox-boot-starterartifactId>
                <version>3.0.0version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    在资源文件配置是否开启

    ## swagger配置
    swagger:
      show: true
    
    • 1
    • 2
    • 3

    启动类模板

    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】即可使用!");
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    java计算机毕业设计Web企业客户管理系统源码+mysql数据库+系统+lw文档+部署
    AXera-pi使用使用记录(1)
    Pytorch入门实例的分解写法
    2023牛客OI赛前集训营-提高组(第三场)C.分糖果
    第6章 - 多无人车系统的协同控制 --> 多无人车系统建模
    Springboot+vue的医药管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。
    什么是调试和性能分析工具?
    RabbitMQ如何保证顺序性
    fpga nvme 寄存器
    Web3:数字身份与隐私保护的新篇章
  • 原文地址:https://blog.csdn.net/gelinwangzi_juge/article/details/127632418