org.springframework.beans.factory.support.InstantiationStrategy负责根据BeanDefinition对象创建一个Bean实例。Spring之所以将实例化Bean的工作通过一个策略接口进行描述,是为了可以方便地采用不同地实例化策略,以满足不同的引用需求,如通过CGLib类库为Bean动态创建子类在进行实例化。

常见的实现类

SimpleInstantiationStrategy是最常用的实例化策略,该策略利用Bean实现类的默认构造函数、带参构造函数或工厂方法创建Bean的实例。
CglibSubclassingInstantiationStrategy扩展了SimpleInstantiationStrategy,为需要进行方法注入的Bean提供了支持。它利用CGLib类库为Bean动态生成子类,在子类中生成方法注入的逻辑,然后使用这个动态生成的子类创建Bean的实例。

小结

InstantiationStrategy仅负责实例化Bean的操作,相当于执行Java语言中new的功能,它并不会参与Bean属性的设置工作。所以由InstantiationStrategy返回的Bean实例实际上是一个半成品的Bean实例,属性填充的工作留待BeanWrapper来完成。

相关文章:

  • 2022-12-23
  • 2021-04-30
  • 2021-07-21
  • 2021-12-14
  • 2022-01-10
  • 2022-01-02
  • 2018-03-06
  • 2021-08-21
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-20
  • 2021-07-11
  • 2021-08-17
  • 2021-05-01
相关资源
相似解决方案