给容器中添加组件的几种方式
1、添加自定义的组件
@Component
@Controller
@Service
@Repository
@ComponentScan
2、添加第三方jar包
@Bean
3、快速个容器中添加一个组件
@Import
4、FactorBean
实现FactoryBean接口,重写方法。注意返回的值,是自定义的Color类。
public class ColorFactorBean implements FactoryBean {
public Object getObject() throws Exception {
return new Color();
}
public Class<?> getObjectType() {
return Color.class;
}
}
将上方实现的类加入到Ioc容器中。
@Bean("colorFactoryBean")
public ColorFactorBean colorFactorBean(){
return new ColorFactorBean();
}
测试,通过结果可以看出,-
- FactoryBean默认获取到的是工厂bean调用getObject创建的对象
- 但是如果加上&前缀符号,就会返回工厂本身的信息
@Test
public void test02(){
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
System.out.println(applicationContext.getBean("&colorFactoryBean"));
System.out.println(applicationContext.getBean("colorFactoryBean"));
}