学习springboot2的第3天(2021-12-02)10-底层注解-@Conditional条件装配
条件装配的应用场景就是:
当发现容器中没有A组件的时候,那么这个组件也不要帮我自动装配。
当我们满足注解里面写的条件的时候,才给容器里面注册组件。
@Conditional是一个父组件,下面有很多个派生组件。
例如:@ConditionalOnBean
先不使用注解@ConditionalOnBean
两个组件单独互不影响。
根据组件名字来测试容器中是否有该组件:
现在默认组件名就是方法名。user01和cat
情况1:两个组件都存在:
2、情况2:cat组件没有,但是User组件有
使用注解@ConditionalOnBean让两个组件的自动化配置关联起来。
情况3:两个组件独有
情况4:user01组件没有。
那么两个组件都应该是没有的。
因为cat01组件有没有需要看user01组件有没有来决定。
因为cat01方法上面写了注解:
@ConditionalOnBean(name = “user01”)
这个注解的意思就是:
看容器中是否有组件名为user01的。有的话,那么cat01也会自动装配。
没有的话,cat01也不会自动装配。
这里我的程序目前看似有个bug
如果:下面这种情况,两个组件都应该要有的。
但是结果就是显示没有user组件
这个现象非常的诡异!!!无法去解释!!!
这种情况下,两个组件都应该没有。