1、
注解方式:全部在@Configuration 配置文件中配置:
1、三层组件:扫描器 + 三层注解(@service、@controller、@component等)
2、非三层组件
1、bean +返回值
2、@import
3、FactoryBean(工厂bean)
@import举例
三层组件注解没什么说的,直接在类上面添加就可以了
1、直接在@configuration注解的类上面用@import({类名.class,类.class})
的方法添加多个bean
输出结果
可以看出apple与banana的id值是全类名
2、通过自定义ImportSelector接口来实现类,通过selectImports方法实现
方法的返回值就是要放入ioc容器的bean,并且告知程序,编写自己的实现类
这里自定义自己的MyImports之后仍然可以和其他的类一起引入ioc中方法和结果如图所示
3、编写ImportBeanDefinitionRegistrar实现这个接口
这种方法貌似有点麻烦
使用factoryBean的方法
1、实现FactoryBean接口
这种注册方法感觉也不好用
这种方法获取也有点麻烦通过&id值 的方法来进行获取不同的bean
例如