第4讲:BeanFactory的一个重要的实现类,DefaultListableBeanFactory,及资源的载入

本文介绍了Spring框架中Ioc容器的启动过程及关键组件的作用,包括Resource的使用、XmlBeanDefinitionReader的工作原理及其与XmlBeanFactory的关系。

为什么提这个类呢?直接说这个类可能会感到陌生,但是提到XmlBeanFactory,可能就有点感觉了吧,实际上DefaultListableBeafFactory是XmlBeanfFactory的父类。

不管是哪个BeanFactory,他们的启动过程都类似,这里以DefaultListableBeanFactory为例

启动Ioc容器的方式:

XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"));

上面启动方式的底层实现代码:

1、ClassPathResource resource = new ClassPathResource("beans.xml");

2、DefaultListableBeanFactory factory = new DefualtListableBeanFactory();

3、XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);

4、reader.loadBeanDefinitions(resource);

 

spring加载资源并装配对象的大致流程:

1、定义好spring配置文件

2、通过Resource对象将Spring配置文件进行抽象,抽象成一个Resource对象

3、定义好Bean工厂(各种BeanFactory)

4、定义好XmlBeanDefinitionReader对象,并将工厂作为参数传递进去供后续回调使用

5、通过XmlBeanDefinitionReader对象读取之前抽象出的Resource对象(包含了Xml文件的解析过程)

6、本质上,XML文件的解析是由XmlBeanDefinitonReader对象交由BeanDefinitionParserDelegate委托来完成的,实质上这里使用到了委托模式

7、Ioc容器创建完毕,用户通过容器获取到所需的对象信息  例子:(Person p = (Person)factory.getBean(“person”))

 

几个重要参数:

1、Resource:

这个类是spring为了支持不同的资源文件(XML、prepertis等),而设定的统一的接口,把磁盘里的文件抽象成一个Resource存储到内层中,方便后续解析文件使用

2、XmlBeanDefinitionReader:

它的父类是AbstractBeanDefinitionReader,该父类的实现类除了XmlBeanDefinitionReader还有PropertiesBeanDefinitionReader等,作用就是根据不同的bean定义来源(不同类型的Resource),通过不同的解析方式,解析定义出BeanDefinition(BeanDefinition是配置文件中(磁盘)配置的bean转换到java代码(内存)中时,存储bean配置信息的普通java对象。不用纠结,后续章节会讲)。包含了Xml文件或者Properties文件等的解析过程。

3、InputStreamSource

Resource接口继承了InputStreamSource,该接口中就只有一个getInputStream()方法,用来获取Inputstream

注意:

这里有一个spring高明的地方,spring并没有把XmlBeanDefinitionReader定义成XmlBeanFactory的内置对象,而是定义成了它的一个内部属性,这样的话就给我们实现自己的beandefinition定义提供了可能,如果我们要修改spring代码,自己解析bean,则只需要我们把XmlBeanDefinitionReader这个属性替换成我们自己的类就可以了

 

2026 3 openclaw详细安装教程(附各软件下载地址)【windows+mac+linux+手机各端教程都有了】OpenClaw安装教程提供了一套详细的指导方案,适合Windows、macOS以及云端服务器的操作系统环境进行安装。对于大多数用户来说,即使是配置相对基础的电脑系统,也能够顺利完成安装过程。该教程的通用性较强,无论是在个人电脑还是在公司提供的云服务平台上,都能够按照相应的步骤进行配置和安装。教程内容涉及的范围相当广泛,不仅包含了安装前的准备工作,如系统要求和环境检查,还详细描述了安装过程中的每一个步骤,包括下载安装包、运行安装程序、配置相关选项以及安装后的验证等。其中,系统要求部分会提到运行OpenClaw所需的基本硬件和软件条件,比如处理器性能、内存大小、操作系统版本等,确保用户在安装前能够判断自己的设备是否满足条件。在环境检查方面,安装教程会建议用户进行某些预检查操作,比如检查操作系统兼容性,确认是否有权限安装软件以及检查必要的网络环境等。这对于避免安装过程中的意外中断和潜在问题有着重要作用。下载安装包部分,教程会指导用户如何访问OpenClaw的官方网站或者指定的下载源获取最新版的安装包。对于不同操作系统的用户,下载链接可能会有所不同,教程会给出详细的链接或者访问路径,确保用户能够获取正确的安装文件。运行安装程序是安装过程中的重要环节,教程会详细说明双击安装包后将会出现的安装向导界面,以及需要用户进行的操作。这包括接受许可协议、选择安装位置、确定安装组件以及配置快捷方式等。每一步骤都会被详细描述,确保用户能够按照指南顺利完成安装。配置相关选项则会涵盖安装后的初始化设置,比如启动OpenClaw前需要的环境变量配置、必要的端口开放等。这部分对于初学者而言可能稍显复杂,但教程中会提供详尽的说明和截图,帮助用户逐一完成这些配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值