大厂面试题-@Conditional注解有什么用

考察目

@Condition是Spring4.x版本引入的一个注解,由于这个问题本身比较简单,所以考察范围一般是工作1到3年左右。

考察目的就是了解求职者对Spring Framework里面注解的了解情况。

作为求职者,回的时候不过过度解读面试官的意图,简单明了的回复即可。

题分析

@Conditional是Spring4版本里面提供的注解,它的作用是给需要装载的Bean增加一个条件判断,只有满足条件的Bean才会装载到IOC器。

@Conditional注解的定义如图所示,从这个注解中可以了解到几个关键信息

    1、@Conditional注解可以修饰在类或者方法上

    2、@Conditional注解可以接收一个或多个实现了Condition接口的类

Condition接口的定义如图所示,它提供了一个返回值为boolean的matches方法,基于@Conditional本身的作用不难猜出它应该是用来实现Bean是否能被装载的判断逻辑的。

@Conditional注解既然是用来判断Bean是否能被装载的条件,那么意味着我们可以在Bean的描述逻辑上增加这样一个注解

然后通过重写Condition接口的matches方法,自定义Bean装载的条件。

比如下图这种使方法,当Spring解析这个配置类的时候,HelloService这个bean是否能被装载到IOC容器,取决于CustomizeCondition里面的matches的返回值,返回true才可以被装载。

这就给我们Bean的装载过程增加了很多的灵活性

问题解答

@Conditional注解的作用是为Bean的装载提供了一个条件判断。

只有满足条件的情况下,Spring才会把当前Bean装载到IOC容器中。

这个条件的实现逻辑,我们可以实现Condition接口并重写matches方法自己去实现。所以@Conditional注解增加了Bean装载的灵活性。

在Spring Boot里面,对@Conditional注解做了更进一步的扩展,比如增加了@ConditionalOnClass、@ConditionalOnBean

等注解,使得我们在使用的过程中不再需要去写条件的逻辑。

这个问题很好回答,切记不要绕来绕去说一大堆

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值