当前位置: 首页 > news >正文

@ConditionalOnClass编译问题

@ConditionalOnClass/@ConditionalOnMissingClass

使用场景

和@Configuration一起使用,用于条件注入

问题一

为什么我们使用的第三方jar中,指定的类型不存在,第三方jar在编译时仍然通过?还打出了jar包?

下图为spring-boot-autoconfigure中的一个配置类SecurityDataConfiguration。为什么SecurityEvaluationContextExtension不存在,但是spring-boot-autoconfigure在编译打包时却能成功?

在这里插入图片描述

其实这里有个误区,spring-boot-autoconfigure在编译打包时,SecurityEvaluationContextExtension是存在的。

spring-boot-autoconfiguremaven中导入了SecurityEvaluationContextExtension所在jar的坐标,所以可以通过编译。但是在maven中导入这个jar包时指定了<optional>true</optional>,所以依赖不会传递到我们的工程。我

http://www.lryc.cn/news/482985.html

相关文章:

  • Redis - 哨兵(Sentinel)
  • unity显示获取 年月日周几【日期】
  • MYSQL隔离性原理——MVCC
  • Android ANR分析总结
  • Three.js 纹理贴图
  • 2024年软件设计师中级(软考中级)详细笔记【12】软件系统分析与设计
  • 【Windows】CMD命令学习——系统命令
  • React第一个项目
  • 计算机网络基本概念总结
  • 考研要求掌握C语言(归并排序)
  • Spring Authorization Server:实现OAuth2认证服务
  • Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本v9版
  • ScrumMaster认证机构及CSM、PSM、RSM价值解析
  • 借助 Pause 容器调试 Pod
  • PostgreSQL 开启密码验证插件
  • Go 语言已立足主流,编程语言排行榜24 年 11 月
  • flutter下拉刷新上拉加载的简单实现方式三
  • 【C++ 20进阶(2):属性 Attribute】
  • 【系统面试篇】其他相关题目——虚拟内存、局部性原理、分页、分块、页面置换算法
  • 力扣617:合并二叉树
  • 软件设计师 - 第1章 计算机网络概论
  • 方案丨车险保单OCR:3秒钟完成保单审核
  • Jmeter中的监听器(一)
  • C++ 标准库 std::vector 的介绍
  • 鸿蒙开发-装饰器@Link问题
  • CTFhub靶场RCE学习
  • 一文3000字从0到1带你进行Mock测试(建议收藏)
  • 数据结构 ——— 链式二叉树的销毁(释放)
  • log4j异常堆栈文件输出
  • 在配置环境变量之后使用Maven报错 : mvn : 无法将“mvn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。