IoC容器篇(十六)(完结)——BeanFactory

目录

BeanFactory

1.BeanFactory or ApplicationContext?

翻译源:Spring官方文档


BeanFactory

BeanFactory提供了IoC容器功能的根本基础,但它只在与第三方框架的集成中使用,对于大多数用户来说BeanFactory已经成为了历史。

BeanFactory以及相关的接口(eg:BeanFactoryAware、InitializingBean、DisposableBean)仍然存在于Spring中的主要原因是为了与大量集成了Spring的第三方框架向后兼容。

 

1.BeanFactory or ApplicationContext?

除非有更好的理由不这么做,否则使用ApplicationContext。

 

ApplicationContext完全包含了BeanFactory的功能。

Spring大量使用了BeanPostProcessor扩展点。如果只使用简单的BeanFactory,相当数量的功能(eg:AOP与事务)支持将无法运作,至少需要添加额外的步骤。

 

BeanFactory注册pos-processor

DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
// populate the factory with bean definitions

// now register any needed BeanPostProcessor instances
MyBeanPostProcessor postProcessor = new MyBeanPostProcessor();
factory.addBeanPostProcessor(postProcessor);

// now start using the factory

BeanFactory注册BeanFactoryPostProcessor

DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(new FileSystemResource("beans.xml"));

// bring in some property values from a Properties file
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
cfg.setLocation(new FileSystemResource("jdbc.properties"));

// now actually do the replacement
cfg.postProcessBeanFactory(factory);

note:BeanFactory的配置与ApplicationContext相比,较为繁琐不便。

 

 

 


翻译源:Spring官方文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值