Spring源码深度解析(四)容器的基础XmlBeanFactory

本文深入探讨了Spring框架中容器的基础,重点关注XmlBeanFactory的初始化过程。从ClassPathResource的构造函数开始,分析了Resource接口如何封装底层资源,包括FileSystemResource和ClassPathResource的实现。接着,解释了Resource接口的重要方法和其子类在资源加载中的作用。文章还介绍了XmlBeanDefinitionReader在加载配置文件中的关键角色,以及在初始化XmlBeanFactory时的流程。最后,提到了ignoreDependencyInterface方法的作用,它允许在自动装配时忽略特定接口。
摘要由CSDN通过智能技术生成

现在我们已经对Srping的容器有了一个大概的了解,尽管很多地方还很迷糊,但是不要紧,下面我们开始探讨每个步骤的详细实现。接下来我们要深入分析以下代码的实现:

BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));

通过XmlBeanFactory初始化时序图,图2—7,我们看下上面代码的执行逻辑:

时序图从BeanFactoryTest测试类开始,通过时序图我们可以一目了然地看到整个逻辑处理顺序。先调用了ClassPathResource的构造函数来构造Resource资源文件的实例对象,后续的资源处理就可以用Resource提供的各种服务来操作了,当我们有了Resource后就可以进行XmlBeanFactory的初始化了。那么Resource文件是如何封装的呢?

Spring的配置文件的读取时通过ClassPathResource进行封装的,如new ClassPathResource("beanFactoryTest.xml"),那么ClassPathResource完成了什么功能呢?

在java中,将不同来源的资源抽象成URL,通过注册不同的handler(URLStreamHander)来处理不同来源的资源的读取逻辑,一般handler的类型使用不同的前缀(协议,Protocol)来识

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值