springBoot 集成knife4j

2023-11-14

        1.导入依赖

   <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.7</version>
        </dependency>

2.配置swgger2

@Slf4j
@Configuration
@EnableSwagger2WebMvc
public class SwaggerConfig implements WebMvcConfigurer {

    @Value("${spring.application.name}")
    private String applicationName;

    @Bean
    public Docket docket() {
        // 指定使用Swagger2规范
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        // 简介(支持Markdown语法)
                        .description("描述信息xxxxx")
                        // 服务地址
                        .termsOfServiceUrl("http://localhost.com/")
                        // 作者及联系信息
                        .contact(new Contact("作者", "访问地址", "邮箱"))
                        // api版本
                        .version("1.0.0")
                        .build())
                //分组名称(微服务项目可以用微服务名分组)
                .groupName(applicationName)
                .select()
                // 定位api
                .apis(
                        RequestHandlerSelectors.basePackage("com.qy.controller")
                                .or(RequestHandlerSelectors.withClassAnnotation(RestController.class)
                                       //.or(RequestHandlerSelectors.withClassAnnotation(Controller.class))
                                )
                )
                .paths(PathSelectors.any())
                .build();
    }
    
}

3.拦截器放行资源

 @Override
    public void addInterceptors(InterceptorRegistry registry) {


        // 对swagger的请求不进行拦截
        String[] excludePatterns = new String[]{"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**",
                "/api", "/api-docs", "/api-docs/**", "/doc.html/**"};
        registry.addInterceptor(jwtInterceptor())
                // 拦截所有请求
                .addPathPatterns("/**")
                // 排除指定请求
                .excludePathPatterns("/verification/**")
                .excludePathPatterns(excludePatterns);

    }

4.yml中开启knife4j

knife4j:
  enable: true

5.日志打印文档地址

@Component
@Slf4j
public class ServerConfig implements ApplicationListener<WebServerInitializedEvent> {

    private int serverPort;

    public int getServerPort() {
        return serverPort;
    }

    @Override
    public void onApplicationEvent(WebServerInitializedEvent webServerInitializedEvent) {

        try {
            InetAddress localHost = Inet4Address.getLocalHost();
            this.serverPort = webServerInitializedEvent.getWebServer().getPort();
            log.info("项目启动成功,接口文档地址:"+"http://"+localHost.getHostAddress()+":"+serverPort+"/doc.html");
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
    }
}

补充,如果拦截器还是拦截接口文档请求,可以在拦截器中通过,request.getRequestURI(); 获取拦截的路径,并对其进行放行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springBoot 集成knife4j 的相关文章

  • 如何在GitHub的repository中建立文件夹

    GitHub的repository无法直接建立文件夹 需要曲线建立 第一步 创建新的repository 若已有repository可直接将其打开 第二步 在repository界面右上角选择创建新文件 create new files 不
  • 费曼技巧学习笔记

    博主狂言 技巧正文 技巧的详细步骤 技巧步骤一 技巧步骤二 技巧步骤三 技巧的提纲总结 费曼技巧可以解决的问题 费曼技巧的另一种描述四步学习法 步骤一 步骤二 步骤三 步骤四 博主读后感 博主狂言 初识费曼技巧 甚是熟悉 博主自认有那么一点
  • 基于Springboot实现Kafka消费数据

    本文介绍使用Kafka监听和订阅两种不同方式进行数据消费 1 配置文件 spring kafka bootstrap servers 192 168 1 16 9092 消费者 consumer group id alarmService

随机推荐

  • MySQL check table/optimize table/analyze table/REPAIR TABLE

    check table 检查InnoDB和MyIsam是否有错误 检查表或者视图是否存在错误 对 MyISAM 和 InnoDB 存储引擎的表有作用 对于 MyISAM 存储引擎的表进行表检查 也会同时更新关键字统计数据 CHECK TAB
  • 《ios零基础教程》-- ”Mac OS X的介绍”和一些“基础语法” 2014-3-18总结

    一 学前须知 讲的ios和c语言的一些发展历史 作为了解即可 二 Mac OS X简单介绍 讲的是对苹果电脑的一些操作和基础了解 感觉蛮有用的 以前都是用的windows 突然用这种高富帅装备 还真不习惯 装个软件都费劲 看了这个之后 对m
  • 1 Centos7安装(jdk8)Tomcat9并设置为开机启动

    一 安装过程 cd usr local src wget http mirrors hust edu cn apache tomcat tomcat 9 v9 0 12 bin apache tomcat 9 0 12 tar gz 可以下
  • 面试余额宝Java技术岗(1-4面题目):GC+spring+二叉树+Dubbo+线上调优+​​​​数据库索引+mq

    余额宝一面 JVM 内存分哪几个区 每个区的作用是什么 JVM有哪些回收算法 对应的收集器有哪些 GC 的两种判定方法 CMS 收集器与 G1 收集器的特点 hashmap源码问题 HashMap HashMap如何保证线程安全 Concu
  • Aix6.1下安装SWFTools

    该文章参考http tech sxinfo net jctj article do curMenu 14 childMenu 16 articleId 388 再结合我在实际上在Aix6 1上的安装经验来编写 相关文件的下载 ftp ftp
  • Linux 同步工具rsync 文件目录同步,增量备份的手段之一

    一 rsync介绍 rsync是linux系统下的数据镜像备份工具 使用快速增量备份工具Remote Sync可以远程同步 支持本地复制 或者与其他SSH rsync主机同步 它的特性如下 可以镜像保存整个目录树和文件系统 可以很容易做到保
  • 工具类库系列(十四)-FileData

    第十四个工具类 FileData 用于文本文件读取 保存 以及在内存中修改文本文件内容 读取 ifstream 保存 ofstream 修改内容 以string类型 获取 设置 文本文件内容 最大支持文件大小1M 上代码 FileData
  • 【多线程】线程安全、锁的同步和异步

    一 基本概念 线程安全 当多个线程访问某一个类 对象或方法 时 这个类始终都能表现出正确的行为 那么这个类 对象或方法 就是线程安全的 非线程安全 非线程主要是指多个线程对同一个对象中的同一个实例变量进行操作时会出现值被更改 值不同步的情况
  • cmake:foreach、endforeach

    foreach 为列表中的每个值计算一组命令 foreach
  • python 数据可视化- 地图

    import json from pyecharts charts import Map from pyecharts options import 读取数据文件 f open D 桌面 python 资料 可视化案例数据 地图数据 疫情
  • JWT安全

    文章目录 JWT是什么 为什么要使用JWT JWT的数据结构 JWT的工作过程 JWT是什么 JSON Web Token JWT 是一个开放标准 RFC 7519 它定义了一种紧凑的 自包含的方式 用于作为JSON对象在各方之间安全地传输
  • Markdown 常用语法汇总

    前言 Markdown 作为一种标记语言 本质上与HTML等无异 都是通过特定的语法 再经过渲染 才能呈现出最终效果 因为程序对 Markdown 语法的支持程度不同 故部分程序中可能无法使用一些较新的语法规则 本文将其常用的语法进行了汇总
  • k8s基础-kubectl node-shell 登录节点

    通过kubectl node shell可以直接登录任意节点主机 weops root node201 helm curl LO https github com kvaps kubectl node shell raw master ku
  • 抖音小程序分享 onShareAppMessage 例子

    onShareAppMessage function res let that this return desc title title 必须以 开头 path pages news detail id that data id 软件目录
  • word参考文献格式设置(国标下载)

    国标GBT7114免费下载查看第二步 1 设置国标GB格式 Word顶端 的 EndNote X7 选项卡 Bibliography 区域 Style 选择 Chinese Std GBT7714 Author Year 或 Chinese
  • matlab求传递函数在某个频率点的增益_了解一阶高通滤波器传递函数

    简要回顾一下 通过对S域电路的分析 可以得到低通滤波器的输入输出特性表达式 电路的VOUT VIN表达式是滤波器的传递函数 如果将该表达式与标准化形式进行比较 可以快速确定两个关键参数 即截止频率和最大增益 传递函数可以写成分子多项式除以分
  • CSS实现圣杯布局(双飞翼布局)的四种方式

    calc 函数 calc 函数用于动态计算长度值 需要注意的是 运算符前后都需要保留一个空格 例如 width calc 100 10px 任何长度值 都可以使用calc 函数进行计算 calc 函数支持 运算 calc 函数使用 标准的数
  • Elasticsearch的路由(Routing)特性

    Elasticsearch路由机制介绍 Elasticsearch的路由机制与其分片机制有着直接的关系 Elasticsearch的路由机制即是通过哈希算法 将具有相同哈希值的文档放置到同一个主分片中 这个和通过哈希算法来进行负载均衡几乎是
  • Edge官方鼠标手势

    前言 日期 2023年8月 Edge浏览器目前已自带官方的鼠标手势功能 若要使用首先将浏览器更新至最新版 下文介绍使用方法 官方鼠标手势 前提 更新Edge至最新版 并关闭其它鼠标手势扩展 开启鼠标手势 打开Edge浏览器的设置 找到外观
  • springBoot 集成knife4j

    1 导入依赖