SpringBoot底层注解-@Import导入组件和@Conditional条件装配

1.@Import导入组件

@Import这个注解要写在容器中组件的类上,将指定的类型的组件导入进来

@Import({User.class, DBHelper.class})给容器中自动创建出这两个类型的组件,默认组件的名字就是全类名,如:com.company.boot.bean.User

在MainApplication.java

在MyConfig中导入组件

 

 看看打印结果:


为什么会有两个呢?
user01是通过@Bean导入进去的

2.@Conditional条件装配

条件装配:满足Conditional指定的条件,则进行组件注入

@Conditional还是一个根注解,下面派生了非常多的注解

表示当容器中有tom这个组件的时候,再给容器注册user01组件

我们现在来测试一下:

不给user01上添加加@ConditionalOnBean,同时不给容器中注册tom组件

 在MainApplication.java中

打印结果:

 现在加上条件装配注解@ConditionalOnBean(name="tom"),表示有tom组件的时候,才加载user01组件

 打印结果:

 当然也可以把@ConditionalOnBean(name="tom")放在整个类上,即这个条件成立以后,表示这个类下面的所有配置只有在有tom组件的时候,才能生效

原文地址:https://www.cnblogs.com/GumpYan/p/14349806.html