深探spring系列-----ioc初始化(1)BeanDefinition的Resource定位

本文探讨了Spring框架中BeanDefinition的作用及其实现原理,并详细介绍了xmlBeanFactory和FileSystemXmlApplicationContext如何查找和加载资源。

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

    1.前言

ioc就不说了 大家都知道。不知道的童鞋可以出门右转百度,google,简书总有一款适合你!

说说BeanDefinition 这个是ioc非常重要一个组件,实际就是pojo对象在ioc中的抽象,通过这个BeanDefinition定义的数据结构,使ioc容器能够方便的对pojo对象也                         就是javabean执行管理.

大体意思是说BeanDefinition是java实体类在spring里面的抽象.而BeanDefinition 的定位就是通过某种方式找到外部的资源 这个资源指的是类路径下,io下或者                             url.

       

2.xmlBeanFactory和FileSystemXmlApplicationContext

xmlBeanFactory是如何寻找Resource的呢?

在xmlBeanFactory中有一个XmlBeanDefinitionReader 他有一个loadBeanDefinitions方法通过这样就寻找Resource了

而相对于beanfactory更高级的ApplicationContext 是如何寻找Resource呢

FileSystemXmlApplicationContext 相信大家都经常用用这个作为eg:

首先FileSystemXmlApplicationContext的继承关系中他的根类AbstractApplicationContext继承的DefaultResourceLoader

找到了我们根据路径获取Resource的方法也就是定义BeanDefinition在哪。

首先我们定义初始化FileSystemXmlApplicationContext时会有一个refresh的过程 ,这个过程就是ioc初始化的步骤


在这里我们


通过这个方法找


这个方法相信大家都很熟悉 这个就是XmlBeanDefinitionReader 里的方法

loadBeanDefinitions方法是一个模板模式基类里面规定好了规则 由继承的子类实现即可

传送门模板模式传送门 http://www.cnblogs.com/zuoxiaolong/p/pattern10.html

3.获得Resource

而这个方法里就有我们最重要的Resource
这个getResource 大家可以看DefaultResourceLoader 里面有获取类路径下的Resource,url下的Resource,以及其他ApplicationContext生成的不同的Resource

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值