本文主要是介绍spring基本原理讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(一)spring的ioc的原理
(1)首先收集一些bean componentScan
(2)从收集的这边bean中 抽象出BeanDefinnation 也就创建对象实例的元数据
(3)基于BeanDefinnation创建对象 可以使用反射,cglib等字节码技术进行创建
spring基于这三个步骤,进行容器的初始化以及对象的实例化,同时进行大量的扩展
(二)怎么才能扩展呢,那么就必须了解spring 的生命周期的方法
针对spring容器,针对bean的 生命周期扩展方法
BeanFactoryPostProcessor
BeanDefinationRegitsryPostProcessor---注入自定义bean 不允许初始化
BeanPostprProcessorInstationAware--before
----------在这些方法之前 bean都是没有被创建
Bean ----调用构造方法
-------- 这个时候bean才会被创建
然后 set属性 setBeanName setBeanFactory
BeanPostprProcessor-------beore
init-method
afterProperties
BeanPostprProcessor-------after
BeanPostprProcessorInstationAware--after
destroy
一些注解和中间件 都是基于这些生命周期的方法将一些自定义的bean注入到spring容器中进行管理
(三)如何解决bean注入的循环依赖的问题
https://blog.csdn.net/chejinqiang/article/details/80003868?spm=ata.21736010.0.0.2e7236a3PtNCY6
这篇关于spring基本原理讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!