我们都知道spring要创建bean之前需要先在xml文件中读取到bean的定义信息,里面有着每个bean的相关的属性已经很多东西:
1.首先创建我们的bean处理器相关的
2.遍历资源对象
3.获取输入流,并且把xml文件转换为Document对象
4.解析document对象
可能大家会疑惑为什么我们有xmlBeanDefinitionReader还要创建这么多的reader这不是多此一举吗,不如不创建xmlBeanDefinitionReader?首先,我们的xmlBeanDefinitionReader并没有解析这些文件的能力,它只是做一个中转站,具体的实现都要委托给其他对象实现,那我们为什么需要创建一个中转站喃,其实这个问题很好知道,在我们的日常生活中我们的如果想要一把椅子,那么我们都是想直接买一把成品的椅子,而不是去一个地方买木头,一个地方买油漆,所以我们的这个对象的功能也是这样,对于用户实现·封装性让我们直接将对象直接交给他,不用知道它的底层的细节,它直接给我们需要的东西。
5.接下来这个步骤也很简单了,就是遍历我们beans中的每个节点,获取到该节点,然后做处理,如果是import,alians,bean,beans那么我们进入默认节点处理器,其他的我们就进入另外的处理器,然后处理出每个节点的信息转换为BeanDefinition对象
比较有趣的就是我们的其他的类型处理器,不是我们spring默认的那那几个标签的,
就是将它的一些处理方法,改为了调用你自己写的一些处理方法即可。
spring读取bean的定义信息
于 2022-03-05 10:06:49 首次发布