BeanFacotry 和ApplicationContext联系和区别

简述

ApplicationContext间接继承了BeanFacotry,ApplicationContext和BeanFacotry两者都是用于加载Bean的,但是相比之下,ApplicationContext提供了更多的扩展功能,简单一点说:ApplicationContext包含BeanFactory的所有功能。通常建议比BeanFactory优先,除非在一些限制的场合,比如字节长度对内存有很大的影响时(Applet)。绝大多数“典型的”企业应用和系统,ApplicationContext就是你需要使用的。

扩展点

org.springframework.context.support.AbstractApplicationContext#refresh方法几乎包含了ApplicationContext中提供的所有功能,比如:

1、ApplicationContext对BeanFacotry功能进行填充

@Qualifier与@Autowired应该是大家非常熟悉的注解,那么这两个注解正是在这一步骤中增加的支持。

2、继承MessageSource

为上下文初始化Message源,即对不同语言的消息体进行国际化处理。

3、BeanFactory的后处理

典型应用PropertyPlaceholderConfigurer,在spring中使用${xxx} 方式的配置引用,是通过后处理对引用变量进行处理。保证了BeanFactory会在实例化任何bean之前获得配置信息,从而能够正确解析bean描述文件中的变量引用。

4、spring事件发布

当完成ApplicationContext初始化的时候,要通过Spring中的事件发布机制来发出ContextRefreshedEvent事件,以保证对应的监听器可以做进一步的逻辑处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值