当前位置: 首页 > 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>,所以依赖不会传递到我们的工程。我

相关文章:

@ConditionalOnClass编译问题

@ConditionalOnClass/@ConditionalOnMissingClass 使用场景 和@Configuration一起使用,用于条件注入 问题一 为什么我们使用的第三方jar中,指定的类型不存在,第三方jar在编译时仍然通过?还打出了jar包? 下图为spring-boot-autoconfigure中的一个配置类SecurityDataCo…...

Redis - 哨兵(Sentinel)

Redis 的主从复制模式下&#xff0c;⼀旦主节点由于故障不能提供服务&#xff0c;需要⼈⼯进⾏主从切换&#xff0c;同时⼤量 的客⼾端需要被通知切换到新的主节点上&#xff0c;对于上了⼀定规模的应⽤来说&#xff0c;这种⽅案是⽆法接受的&#xff0c; 于是Redis从2.8开始提…...

unity显示获取 年月日周几【日期】

unity显示获取 年月日周几【日期】 public void ShowDate(Text txt){//txt.text DateTime now DateTime.Now; // 获取当前时间int year now.Year; // 获取年份int month now.Month; // 获取月份&#xff08;1-12&#xff09;int day now.Day; // 获取天数&#xff08;1-31&…...

MYSQL隔离性原理——MVCC

表的隐藏字段 表的列包含用户自定义的列和由系统自动创建的隐藏字段。我们介绍3个隐藏字段&#xff0c;不理解也没有关系&#xff0c;理解后面的undo log就懂了&#xff1a; DB_TRX_ID &#xff1a;6 byte&#xff0c;最近修改( 修改/插入 )事务ID&#xff0c;记录创建这条记…...

Android ANR分析总结

1、ANR介绍 ANR&#xff08;Application Not Responding&#xff09;指的是应用程序无响应&#xff0c;当Android应用程序在主线程上执行长时间运行的操作或阻塞I/O操作时发生。这可能导致应用程序界面冻结或无法响应用户输入。 1、Service ANR&#xff1a;前台20s&#xff0…...

Three.js 纹理贴图

1. 纹理贴图 在Three.js中&#xff0c;纹理贴图是一种将二维图像贴到三维物体表面的技术&#xff0c;以增强物体的视觉表现。纹理贴图可以使物体表面更加真实、细腻&#xff0c;为场景增色不少。 在Three.js中&#xff0c;纹理贴图的加载主要通过THREE.TextureLoader类实现。…...

2024年软件设计师中级(软考中级)详细笔记【12】软件系统分析与设计

目录 前言第12章 软件系统分析与设计12.2 数据库分析与设计12.2.1 数据库设计的策略与步骤12.2.2 需求分析12.2.3 概念结构设计12.2.4 逻辑结构设计12.2.5 数据库的物理设计 结语 前言 在备考软件设计师中级考试的过程中&#xff0c;我遇到了些许挑战&#xff0c;也收获了宝贵…...

【Windows】CMD命令学习——系统命令

CMD&#xff08;命令提示符&#xff09;是Windows操作系统中的一个命令行解释器&#xff0c;允许用户通过输入命令来执行各种系统操作。 系统命令 systeminfo - 显示计算机的详细配置信息。 tasklist - 显示当前正在运行的进程列表。 taskkill - 终止正在运行的进程。例如&am…...

React第一个项目

运行效果&#xff1a; 知识讲解&#xff1a; 组件&#xff1a;先定义后使用&#xff0c;用户界面的构成要素&#xff08;标签、css和JavaScript&#xff09; 定义组件&#xff1a; 导出组件&#xff1a;export default 前缀是JavaScript标准语法 定义函数&#xff1a;function …...

计算机网络基本概念总结

IP地址 概念 使网络中的设备都有唯一的地址标识&#xff0c;用于表示其在网络中的位置。 格式 IP地址是一个32位的二进制数&#xff0c;通常被分割为4个8位二进制数&#xff08;也就是4个字节&#xff09;&#xff0c;如&#xff1a;01100100.00001000.00001010.00000110。通常…...

考研要求掌握C语言(归并排序)

归并排序考啥&#xff1f; 在考研中归并排序只出在选择题&#xff0c;理解原理很重要 且在考研中考两两归并&#xff0c;还是比较简单的 归并排序原理 就是每次分一半&#xff0c;直到每一半只含有一个或不能再分时&#xff0c;一半一半的进行排序&#xff0c;最终合并两个…...

Spring Authorization Server:实现OAuth2认证服务

Spring Authorization Server为构建安全的SpringBoot应用提供了一系列解决方案,本节课程我们将结合OAuth2来实现认证服务,该认证服务将支持常用的OAuth2授权模式和刷新Token。 Spring Authorization Server简介 Spring Authorization Server是一个安全框架,它提供了OAuth 2.…...

Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本v9版

Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本 Shell脚本源码地址&#xff1a; Gitee&#xff1a;https://gitee.com/raymond9/shell Github&#xff1a;https://github.com/raymond999999/shell脚本可以去上面的Gitee或Github代码仓库拉取。 支持的功能和系统&am…...

ScrumMaster认证机构及CSM、PSM、RSM价值解析

近十年Scrum在国内备受关注&#xff0c;成为一种最流行的现代敏捷工作方式。ScrumMaster这一独特的角色&#xff0c;在企业内部推动Scrum落地的过程中越来越重要。各种ScrumMaster认证课程也蜂拥而至&#xff0c;甚至鱼目混珠。 我们为大家梳理了目前市面上出现的ScrumMaster认…...

借助 Pause 容器调试 Pod

借助 Pause 容器调试 Pod 在 K8S 中&#xff0c;Pod 是最核心、最基础的资源对象&#xff0c;也是 Kubernetes 中调度最小单元。在介绍 Pause 容器之前需要先说明下 Pod 与容器的关系来理解为什么需要 Pause 容器来帮助调试 1. Pod 与 容器的关系 Pod 是一个抽象的逻辑概念&…...

PostgreSQL 开启密码验证插件

我们知道在数据安全和等保要求中&#xff0c;用户的密码复杂度需要满足一定的条件&#xff0c;那么在 PostgreSQL 数据库中如何保证创建的用户的密码满足这些要求呢。 [rootlocalhost ~]# su - postgres [postgreslocalhost ~]$ cd /usr/local/pgsql-12.8/data/ [postgresloca…...

Go 语言已立足主流,编程语言排行榜24 年 11 月

Go语言概述 Go语言&#xff0c;简称Golang&#xff0c;是由Google的Robert Griesemer、Rob Pike和Ken Thompson在2007年设计&#xff0c;并于2009年11月正式宣布推出的静态类型、编译型开源编程语言。Go语言以其提高编程效率、软件构建速度和运行时性能的设计目标&#xff0c;…...

flutter下拉刷新上拉加载的简单实现方式三

使用 CustomScrollView 结合 SliverList 实现了一个支持下拉刷新和上拉加载更多功能的滚动列表&#xff0c;对下面代码进行解析学习。 import dart:math;import package:flutter/material.dart;import custom_pull/gsy_refresh_sliver.dart; import package:flutter/cupertino…...

【C++ 20进阶(2):属性 Attribute】

【C 20进阶&#xff08;2&#xff09;&#xff1a;属性 Attribute】 原文&#xff1a;https://blog.csdn.net/weixin_44259356/article/details/143663492 引言 本篇文章为系列文章将着重介绍C20新特性&#xff0c;一是希望可以和大家交流分享&#xff0c;二是也便于自己巩固…...

【系统面试篇】其他相关题目——虚拟内存、局部性原理、分页、分块、页面置换算法

目录 一、相关问题 1. 什么是虚拟内存&#xff1f;为什么需要虚拟内存&#xff1f; &#xff08;1&#xff09;内存扩展 &#xff08;2&#xff09;内存隔离 &#xff08;3&#xff09;物理内存管理 &#xff08;4&#xff09;页面交换 &#xff08;5&#xff09;内存映…...

基于RTK-GPS与ResNet50的自主草坪清扫机器人系统设计与实践

1. 项目概述与核心挑战在公园维护的日常工作中&#xff0c;草坪垃圾清理是一项既耗费人力又效率低下的重复性劳动。传统的清扫方式要么依赖人工&#xff0c;要么使用大型、笨重且可能损伤草皮的设备。我们团队的目标&#xff0c;是设计并实现一个能够自主、高效且温和地完成这项…...

手把手教你用Python+OpenBMI复现运动想象BCI实验(附完整代码与数据集)

Python实战&#xff1a;从OpenBMI到运动想象脑机接口的全流程复现指南在认知科学与脑机接口(BCI)研究领域&#xff0c;运动想象(Motor Imagery)实验一直是经典范式。传统上&#xff0c;这类实验多依赖Matlab生态完成&#xff0c;但随着Python在科学计算领域的崛起&#xff0c;越…...

VLC for Unity在Android音频绕过原理与协同控制方案

1. 问题本质&#xff1a;为什么VLC for Unity在Android上绕过Unity音频系统&#xff1f;这个问题不是“插件用得不对”&#xff0c;而是VLC for Unity在Android平台上的架构级设计选择。我第一次遇到这个现象时&#xff0c;也以为是配置漏了——把Audio Source拖上去、勾上Play…...

科研节奏管理法:4篇论文驱动的工程化落地实践

1. 项目概述&#xff1a;这不是一份文献综述&#xff0c;而是一份“科研呼吸节奏”训练手册“Month in 4 Papers (December 2024)”——这个标题乍看像一份学术月报&#xff0c;但如果你真把它当成四篇论文的摘要合集&#xff0c;就完全错过了它最核心的价值。我做了十年科研内…...

别再烧MOS管了!用STM32驱动电机,H桥自举电路设计保姆级避坑指南

STM32驱动H桥电机实战&#xff1a;从自举电路设计到MOS管保护全解析 现象诊断&#xff1a;当你的MOS管开始"发烧" 调试台上散发的焦糊味往往是硬件工程师的噩梦。上周有位开发者向我展示了他的智能小车项目——每当电机堵转时&#xff0c;IR2104驱动芯片周围的MOS管就…...

【云计算学习之路】学习Centos7系统:服务搭建(VSFTP)

FTP简介及快速构建VSFTP服务器FTP简介及快速构建VSFTP服务器一、前言二、FTP服务核心简介2.1 FTP基本概念2.2 FTP两种工作模式1. 主动模式&#xff08;Active Mode&#xff09;2. 被动模式&#xff08;Passive Mode&#xff09;2.3 VSFTP服务核心优势三、实验环境预处理3.1 网络…...

第 3 篇:让 Agent 学会分工,LangGraph 构建多 Agent系统

系列简介&#xff1a;从零搭建一个多 Agent AI 助手&#xff0c;覆盖原理、实现、部署全链路。不讲空话&#xff0c;每篇都有可运行的代码。 项目地址&#xff1a;https://github.com/CodeMomentYY/LangGraph-Agent 本篇目标&#xff1a;用 LangGraph 搭建一个多 Agent 协作系统…...

昇腾CANN的算子“零件厂“:catlass仓库到底在生产什么

如果把昇腾NPU上的大模型算子比作一辆汽车&#xff0c;FlashAttention是发动机&#xff0c;RMSNorm是刹车片&#xff0c;RoPE是方向盘——那catlass是什么&#xff1f;是生产这些零件的模具和机床。 第一次接触昇腾CANN生态的时候&#xff0c;很容易忽略catlass。它不像ops-tr…...

Linux驱动开发:/proc接口创建与安全实现指南

1. 项目概述&#xff1a;为什么我们需要关注/proc接口&#xff1f;在Linux驱动开发的世界里&#xff0c;与用户空间进行数据交换是家常便饭。你写了一个驱动&#xff0c;控制着某个硬件&#xff0c;但总得有个“窗口”让系统管理员或者上层应用能看看它运行得怎么样&#xff0c…...

避开Keil开发大坑:从一次CANFD驱动调试,总结C语言数组操作的5个常见陷阱

避开Keil开发大坑&#xff1a;从一次CANFD驱动调试&#xff0c;总结C语言数组操作的5个常见陷阱 调试嵌入式系统的CANFD驱动时&#xff0c;一个看似简单的数组越界问题让我熬了整整三个通宵。当逻辑分析仪终于捕捉到那个幽灵般的非法内存写入时&#xff0c;我才意识到——在Kei…...