spring源码深度解析笔记(二)

昨天我了解了DefaultListableBeanFactory和XmlBeanDefinitionReader这两个核心的类,也知道spring的框架的大体分布,今天我来看看spring的具体实现,先从配置文件开始。

spring的配置文件读取是通过ClassPathResource来进行封装的。ClassPathResource实现了Resource接口并继承。Resource接口来封装底层资源。Resource接口继承InputStreamSource。InputStreamSource封装任何能返回InputStream的类,比如:File,ClassPah,Byte.Array等。它只有一个方法定义。getInputStream(),该方法返回一个新的对象。

Resource接口抽象了所有spring内部使用到的底层资源。

在日常的开发工作中,资源文件的加载也是经常用到的。可以直接使用Spring提供的类。比如:

Resource resource = new ClassPathResource("applicationContext.xml");

InputStream inputStream = resource.getInputStream();

得到inputSteam后,我们就可以按照以前的开发方式进行实现了。

有了Resource接口便可以对所有的资源文件进行统一处理,至于实现,以getInputStream为例,ClassPathResource中的实现方式便是通过Class或者ClassLoader提供的调用,而对于FileSystemResource的实现其实更简单,直接使用FileInputStream对文件进行实例化。

 

当通过Resource相关类完成了对配置文件进行封装后,配置文件的读取工作就全权交给XmlBeanDefinitionReader来处理了。

我在了解了Spring将配置文件封装为Resource类型的实例方法后,在来看看XmlBeanFactory的初始化过程。

根据上图所示,this.reader.loadBeanDefinitions方法就是加载XmlBeanDefinitionReader。但是在加载XmlBeanDefinitionReader之前,它调用了super(parentBeanFactory),跟踪了一下代码:

ignoreDependencyInterface:主要功能是忽略给定接口的自动装配功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值