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组件的时候,才能生效