Spring源代码整理(1):BeanFactory和ApplicationContext

本文详细介绍了Spring框架中的核心IoC容器概念,包括BeanFactory的基本使用方式、资源加载方法,以及如何通过ClassPathXmlApplicationContext来替代已废弃的XmlBeanFactory。此外,还讲解了ApplicationContext接口提供的额外功能,如默认初始化所有Singleton bean和事件机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BeanFactory

最基本的接口,提供著名的getBean

Resource resource = new ClassPathResource("applicationContext.xml");            //装载配置文件  
BeanFactory factory = new XmlBeanFactory(resource);  

这里写图片描述

父子容器机制

HierarchicalBeanFactory接口是管理双亲IoC容器规范,比如说getParentBeanFactory()这样的方法。每个子容器都有自己的父容器,getbean的时候优先到自己的父容器中寻找。父容器不能使用子容器的bean.而子容器能够使用父容器的bean.最著名的实例是

ApplicationContext parent = new ClassPathXmlApplicationContext("parent.xml");
        ApplicationContext dataSourceContext = new ClassPathXmlApplicationContext(new String[]{"datasource.xml"}, parent);

最著名的实现是SpringMVC容器和spring根容器之间的关系
这里写图片描述

ApplicationContext

XmlBeanFactory现在已经是过期代码了,现在推荐使用ClassPathXmlApplicationContext。ApplicationContext接口继承了BeanFactory接口。

BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml"); 

这里写图片描述

ApplicationContext即应用上下文,它是建立在BeanFactory基础之上的,看下边的体系结构就可以发现。在ApplicationContext中提供了更多面向应用的功能
ApplicationContext新增了如下功能:

  • 默认初始化所有的Singleton,也可以通过配置取消预初始化。
  • 事件机制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值