美文网首页
spring bean 管理

spring bean 管理

作者: NazgulSun | 来源:发表于2022-01-09 11:32 被阅读0次

Bean 的管理

f8e5cfb4ceb7837a20dcddfff68a1cf.png

管理bean 有两个 核心的关注点;

  • beanFactory,基本的getBean 方法,用来创建bean,与applicationContext不同,他是延迟加载的;applicationContext,是预先把所有的都加载好;
  • 一个是 bean 的definition;也就是你如何定义的bean的,并且提供灵活修改beanDefinition的接口; 在spring中,由beanFactoryPostProcessor 来处理; beanFactory 是一个总的控制类,读取definition,构建工厂类; 然后提供getBean的一系列方法; beanFactoryPostProcessor 在构建好Factory 之后,提供切点,对definition 进行修改;常用的包括安全,placeholder解析等。
  • 另一个是 bean 对象的 实例化+初始化;实例化就是new对象放入heap中,初始化,包括属性的设置,aware接口的调用,然后是 beanPostProcesser.before + initMethod + beanPostProcesser.after 。 对于初始化,通常有三种方法, postConstruct-> initiBean- > initMethod. 按照这个顺序来的;参考: https://www.jb51.net/article/223014.htm。我们看到这个接口的实现类,会发现AOP相关的处理类。 这里是AOP的关键,提供了增强对象的切点; 我们看到整个生命周期管理非常的精细,可以在多个地方进行增强;这是spring设计上比较成功的地方;
  • beanFactoryPostProccessor, 增强 definition; beanPostProcessor不修改代码增强 object行为;
  • 另外一个是factorybean,他可以让我们自定义创建bean的方法,getobject方法返回一个对象,这歌对象也是可以在容器中管理的。所以说是对bean对象的一个增强。

相关文章

网友评论

      本文标题:spring bean 管理

      本文链接:https://www.haomeiwen.com/subject/hckrcrtx.html