@Configuration @Import({Lei.class, Color.class}) public class BeanConfig3 { //@Conditional({WindowCondition.class}) @Bean public Person bill() { return new Person("bill gates",62); } }
@Test public void testImport() { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig3.class); System.out.println("容器初始化完成。。。"); String[] names = context.getBeanDefinitionNames(); BeanDefinition bd = context.getBeanDefinition("bill"); String[] aa = context.getBeanNamesForType(Color.class); System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); for (String s : aa) { System.out.println("sssssssssssss:"+s); } System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); System.out.println("bd:"+bd); //Object a = context.getBean("lei"); //System.out.println(a); //String[] names = context.getBeanNamesForType(Person.class); for (String name : names) { System.out.println(name); } }
总结:
1.@Bean:自己写的代码可以加@controller、@service、@repository 、@Component组件,但是第三方包无法加这个注解,因此@Bean注解可用于其它第三方包的组件装配,并且装配有参无参构造方法都可以。
2.@Import:本注解也是导入第三方包的组件,只不过比@Bean更简单,只用于快速装配并且为无参构造的组件。
3.of:属于
4.for:关于