博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring boot @ConditionalOnxxx相关注解总结
阅读量:6189 次
发布时间:2019-06-21

本文共 931 字,大约阅读时间需要 3 分钟。

hot3.png

下面来介绍如何使用@Condition

public class TestCondition implements Condition  

{  
    /** 
     * 只有返回true,才会启用配置 
     */  
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata)  
    {  
        return true;  
    }  
}
@Conditional(TestCondition.class)

这句代码可以标注在类上面,表示该类下面的所有@Bean都会启用配置,也可以标注在方法上面,只是对该方法启用配置。

Spring框架还提供了很多@Condition给我们用,当然总结用语哪种好理解,看给位读者喽

@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)

@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication(不是web应用)

后续会继续补充

另一种总结

@ConditionalOnClass:该注解的参数对应的类必须存在,否则不解析该注解修饰的配置类;

@ConditionalOnMissingBean:该注解表示,如果存在它修饰的类的bean,则不需要再创建这个bean;可以给该注解传入参数例如@ConditionOnMissingBean(name = "example"),这个表示如果name为“example”的bean存在,这该注解修饰的代码块不执行
--------------------- 
 

转载于:https://my.oschina.net/xiaominmin/blog/3034530

你可能感兴趣的文章
批处理学习笔记系列
查看>>
算法 后减前最大值,zt
查看>>
卡巴斯基安全软件2014(78三年,逢周一68)时间:2013.10.1-2013.10.31
查看>>
Android SurfaceView概述
查看>>
IFA Basics
查看>>
iframe
查看>>
vs2005新建项目中没有ASP.NET WEB应用程序的解决方法
查看>>
基于XMPP协议的Android即时通信系
查看>>
yuv转bmp
查看>>
MongoDB数据文件内部结构
查看>>
html 内联函数宽度设置
查看>>
MySQL的timeout那点事
查看>>
informatica中的workflow连接远程数据库
查看>>
译:在C#中使用LINQ To SQL
查看>>
【leetcode】Copy List with Random Pointer (hard)
查看>>
poi读取xlsx
查看>>
android:layout_weight属性详解 (转)
查看>>
python编程之处理GB级的大型文件
查看>>
Hive
查看>>
【转】如何删除一个repository(仓库)
查看>>