IoC 之深入分析 InitializingBean 和 init-method
Spring 的 org.springframework.beans.factory.InitializingBean 接口,为 bean 提供了定义初始化方法的方式,它仅包含了一个方法:#afterPropertiesSet() 。
Spring 的 org.springframework.beans.factory.InitializingBean 接口,为 bean 提供了定义初始化方法的方式,它仅包含了一个方法:#afterPropertiesSet() 。
Spring 作为优秀的开源框架,它为我们提供了丰富的可扩展点,除了前面提到的 Aware 接口,还包括其他部分,其中一个很重要的就是 BeanPostProcessor。这篇文章主要介绍 BeanPostProcessor 的使用以及其实现原理
AbstractAutowireCapableBeanFactory 的 #doCreateBean(final String beanName, final RootBeanDefinition mbd, final Object[] args) 方法,主要干三件事情。
在 【 Spring】 Spring bean 解析篇深入分析了一个配置文件经历了哪些过程转变成了 BeanDefinition,但是这个 BeanDefinition 并不是我们真正想要的想要的 bean,因为它还仅仅只是承载了我们需要的目标 bean 的信息。
一个 bean 经历了 #createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args) 方法,被创建出来,然后又经过一番属性注入,依赖处理,历经千辛万苦,千锤百炼,终于有点儿 bean 实例的样子,能堪大任了,只需要经历最后一步就破茧成蝶了。
这篇分析 #doCreateBean(...) 方法的第三个过程:循环依赖处理。其实,循环依赖并不仅仅只是在 #doCreateBean(...) 方法中处理,而是在整个加载 bean 的过程中都有涉及。
#doCreateBean(...) 方法,主要用于完成 bean 的创建和初始化工作,我们可以将其分为四个过程。
#createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args) 方法,用于实例化 Bean 对象。
这篇我们关注创建 bean 过程中的第一个步骤:实例化 bean,对应的方法为 #createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args)
在上篇博客 《【 Spring】—— IoC 之加载 Bean:分析各 scope 的 Bean 创建》 中,有一个核心方法没有讲到, #createBean(String beanName, RootBeanDefinition mbd, Object[] args) 方法。