上一章,在解析bean标签的时候,还剩余两个方法没有深入
这一章开始真正解析xml的标签,逻辑不复杂,但是内容比较多,所有单独放一篇文章。继续上一章的BeanDefinitionDocumentReader.registerBeanDefinitions(),该接口只有一个实现类就是:DefaultBeanDefinitionDocumentReader。以下面xml为例
上一章讲到refreshBeanFactory做了两件事情,一件是创建容器,一件是加载BeanDefinition,即loadBeanDefinitions()。加载BeanDefinition包含两个过程。本章讲第一点。
IOC初始化可归纳为两个步骤,创建容器、加载bean定义。本文以ApplicationContext为例讲解创建容器过程,其实现类为ClassPathXmlApplicationContext。
ApplicationContext允许嵌套上下文,可以将父上下文维护在一个上下文中,其原理很类似双亲委托加载。对于使用的话,加载一个bean,会先检查当前上下文,然后检索父上下文,逐级向上。这样为spring应用提供一个共享的bean环境,而不用在多个上下文之间来回切换。
本系列博客为看书留下的笔记,记录整个spring运行过程。主要分为四个模块,如下
系统生态化后,最头疼的事请就是强依赖上游系统提供的服务。当服务链路太长,开发过程要求部署整套服务,这个需要的资源是巨大的。最近着手解决这个问题,今天记录下来。
在解决这个问题的过程中,得到三种解决方案。如下: