谈谈springboot中@Conditional相关注解

news/2024/9/21 20:40:26/文章来源:https://www.cnblogs.com/kun1790051360/p/18393221

@Conditional是一个元注解

 

@ConditionalOnClass(xx.class)

这是用于修饰一个类的注解。它主要是让你的代码具有兼容性,如在多模块下common模块中有一些仅仅是部分其他模块依赖、需要配置的类(例如rabbitMQ配置类,我相信他不应该被全模块需要,但是他放在常用模块中依旧是最合适的)只有当前模块内存在xx.class时,才会注册相关bean

@ConditionalOnMissingClass

与上述完全相反,只有在不存在xx.class时,才会对bean进行实例化。

 

@ConditionalOnMissingBean  #注意请在自动装配类中使用这个注解,不然会产生不可控的错误

这是用于修饰Bean的一个注解。它最主要是让你的代码具有扩展性,如自带的redis自动装配、neo4j自动装配。

当外部出现多个相同类型的bean时,spring会为我们选择一个不带有conditionalOnMissingBean修饰的bean。也就是说这个修饰注解的目的是为我们提供一个默认的bean

在springboot3+中org.springframework.boot.autoconfigure.AutoConfiguration.imports提供了相关会进行自动装配的默认bean

 

 

@ConditionalOnProperty

这个用于配置文件来决定是否加载某一个bean。以下是文心一言提供的一个例子

@Service  
@ConditionalOnProperty(name = "myapp.feature.enabled", havingValue = "true")  
public class MyService {  // 服务实现代码  
}

 只有在myapp.feature.enable设置为true的时候,这个类才会被spring容器创建并管理,否则不会创建。在实习时,我的项目中的定时任务等等一系列不是必须启动的项目中都添加了类似的效果,我感觉他们的实现方法也是如此。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/791149.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Categraf+VictoriaMetrics+Grafana网络设备监控方案

背景 应公司网工邀请,一起研究架设一套系统,对公司网络设备进行监控和预警。 基础 什么是SNMP 简单网络管理协议SNMP(Simple Network Management Protocol)用于网络设备的管理。 网络设备多种多样,不同设备不同厂家管理接口各不相同,于是snmp应运而生,SNMP作为广泛应用于…

Categraf+VictoriaMetrics+Grafana,网络设备监控方案

背景 应公司网工邀请,一起研究架设一套系统,对公司网络设备进行监控和预警。 基础 什么是SNMP 简单网络管理协议SNMP(Simple Network Management Protocol)用于网络设备的管理。 网络设备多种多样,不同设备不同厂家管理接口各不相同,于是snmp应运而生,SNMP作为广泛应用于…

Kubernetes存储卷

1. 存储卷基础 1.1 存储卷基础 从概念上讲,存储卷是可供Pod中的所有容器访问的目录Pod规范中声明的存储卷来源决定了目录的创建方式、使用的存储介质以及目录的初始内容存储卷插件(存储驱动)决定了支持的后端存储介质或存储服务,例如hostPath插件使用宿主机文件系统,而nfs…

一场 Kafka CRC 异常引发的血案

一、问题概述 客户的生产环境突然在近期间歇式的收到了Kafka CRC的相关异常,异常内容如下 Record batch for partition skywalking-traces-0 at offset 292107075 is invalid, cause: Record is corrupt (stored crc = 1016021496, compute crc = 1981017560) 报错没有规律性,…

机器学习之——决策树信息增益计算[附加计算程序]

0 前言本文主要介绍信息增益的计算公式并举出若干例子帮助理解。 读者需要具备的知识有:信息熵、条件熵。 本文所示用的数据集为:游玩数据集 1.1节1 信息增益计算公式g(D,A)表示在条件A下对于目标变量D的信息增益。 H(D)表示随机变量D的信息熵。 H(D|A)表示在随机变量A条件下…

2024秋软件工程个人作业(第一次)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 熟悉aigc,帮助老师和助教了解我,为软工课程之后的开展做准备学号 102202135markdown编辑器1、个人logo文生图任…

ue渲染关闭运动模糊

网上提供的一种方法是在渲染设置中关闭动态模糊,但是测试渲染还是会发生模糊。参考另一种方法是在渲染设置中添加控制台变量,设置 r.motionblurquality = 0。该方法测试通过!

Windows下Bug管理系统MantisBT的安装和配置

因工作需要,最近在研究开源的bug管理系统,其中比较流行的是Redmine和MantisBT。Redmine我们在几年前有使用过,一开始感觉整个流程和UI很简洁,而且还可以支持一定的定制化,感觉不错。但随着使用的用户和项目多起来就不太好管理,给人的感觉很凌乱。所以就搭建了一个MantisB…

Windows下Bug管理系统MantisBT的部署

因工作需要,最近在研究开源的bug管理系统,其中比较流行的是Redmine和MantisBT。Redmine我们在几年前有使用过,一开始感觉整个流程和UI很简洁,而且还可以支持一定的定制化,感觉不错。但随着使用的用户和项目多起来就不太好管理,给人的感觉很凌乱。所以就搭建了一个MantisB…

【学习】【AI+安全】基于AI的业务逻辑漏洞安全架构研究

摘 要引 言 一、业务逻辑漏洞的挑战二、AI技术与业务逻辑漏洞检测2.1 自然语言分析2.2 模式识别与异常检测三、架构设计3.1 架构模块设计3.2 架构模型设计3.2.1 基础场景分析模型3.2.2 一致性分析模型3.2.3 异常分析模型3.3 架构流程设计3.3.1 数据收集流程3.3.2 漏洞分析…

C#调用第三方软件及交互

C#调用第三方软件及交互 最近有一个功能pdf转epub,网上找到一个解决方案pdf2epubEX,Windows环境只能以docker方式安装,手动执行docker命令是可以的,如下图:由于pdf数量过多,全部手动转肯定不行,想通过C#调用docker命令,但是这种方法会报错"the input device is not…

Winform点击按钮Panle切换页面的实现

一、项目结构 二、主界面 Main.cs Panel Name: panel1 三、代码实现namespace 测试窗口切换 {public partial class Main : Form{// 先定义对应的私有字段private CmmPage _cmmPage;private TwoPage _twoPage;public Main(){InitializeComponent();}// 在主界面点击Load事件创建…