@DependsOn @ConditionOnBean @ConditionOnMissingBean @Conditional 注解的含义
都是Spring初始化时,加载Bean的条件判断
@DependsOn 表示需要依赖于某个Bean加载完成之后,再加载,时依赖关系
@ConditionOnBean
表示加载当前Bean需要 某个Bean也加载了,不是强依赖关系,并不会去加载这个依赖的Bean
需要容器自己已经加载了这个Bean,它才再加载,否则不加载。也就是都有,或者都没有
@ConditionOnMissingBean
正好与@ConditionOnBean注解相反,当容器不存在某个Bean,我就加载我这个Bean,否则容器中已经有了某个Bean,我当前Bean就不加载
@Conditional
该注解可以理解为是@ConditionOnBean、@ConditionOnMissingBean的父类注解,都是靠@Conditional注解机制实现的
如:@ConditionalOnBean注解,是加了@Conditional注解的,下图所示
@ConditionOnMissingBean注解如下
可以通过自定义Condition继承SpringBootCondition的模板方法,实现Condition接口的matches方法,返回 boolean是否匹配成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~