Spring IoC自定义标签解析
概述本文接着 Spring IoC之存储对象BeanDefinition 一文继续学习,在学习自定义标签的知识时,首先我们先了解一下自定义标签的实现,欢迎阅读:Spring自定义标签的实现自定义标签在 parseBeanDefinitions()方法中有这么一段...
Spring自定义标签的实现
概述前景:经常使用一些依赖于 Spring 的组件时,发现可以通过自定义配置 Spring 的标签来实现插件的注入,例如数据库源的配置,Mybatis 的配置等。那么这些 Spring 标签是如何自定义配置的?学习 Spring 标签的自定义配置为...
Spring IoC之存储对象BeanDefinition
概述BeanDefinition 是一个接口,它描述了一个 Bean 实例,包括属性值、构造方法值和继承自它的类的更多信息。它继承 AttributeAccessor 和 BeanMetadataElement 接口。两个接口定义如下:AttributeAccessor:定义了与其他...
Spring IoC之循环依赖处理
什么是循环依赖循环依赖其实是循环引用,也就是两个或则两个以上的 bean 互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图所示:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其...
Spring bean之间的关系
概述在学习 bean 的加载过程时不了解 bean 循环依赖的概念,因此在查阅相关资料时发现 bean 之间除了依赖关系还有其他一些关系。因此本章就对 bean 之间的关系进行整理,bean 之间的关系可以通过对 bean元素标签的设置起作...
Spring IoC之AbstractBeanFactory
AbstractBeanFactory 实现了依赖关系处理,它 继承了 DefaultSingletonBeanRegistry 类,并进一步丰富了已有的功能,这个类提供了 singleton/prototype 的选择,单例 cache,对于 FactoryBean 的处理,bean 定义的处理以及 b...
Spring IoC之BeanFactory
概述在上一章节 Spring IoC之ClassPathXmlApplicationContext 关于 ClassPathXmlApplicationContext 的使用流程进行了简单的分析,其中关于 bean 的加载我们也有了大概的了解。Spring 通过资源加载器加载相应的 XML 文件,...
Spring IoC之ApplicationContext中refresh过程
refresh()该方法是 Spring Bean 加载的核心,它是 ClassPathXmlApplicationContext 的父类 AbstractApplicationContext 的一个方法 , 顾名思义,用于刷新整个Spring 上下文信息,定义了整个 Spring 上下文加载的流程。pub...
Spring IoC之ClassPathXmlApplicationContext
概述前面我们讲了 Spring 资源的定义和资源的加载情况,还剩下 BeanFactory、BeanDefinition、BeanDefinitionReader 和 ApplicationContext 需要学习,通常情况下,这些内容关联性比较紧密,所以我们从实际应用场景中对 bea...
Spring之BeanFactoryPostProcessor和BeanPostProcessor
概述BeanFactoryPostProcessor 和 BeanPostProcessor 这两个接口,都是 Spring 初始化 bean 时对外暴露的扩展点,一般叫做 Spring 的 Bean 后置处理器接口,作用是为 Bean 的初始化前后 提供可扩展的空间。两个接口名称看起...