zoukankan      html  css  js  c++  java
  • Sring容器技术内幕之InstantiationStrategy类介绍

    引言

    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来完成。

  • 相关阅读:
    Shiro
    Python活力练习Day11
    Python活力练习Day10
    Python活力练习Day9
    数据框DataFrame和列表List相互转换
    Python活力练习Day8
    Python中绘制箭头
    Python活力练习Day7
    Python活力练习Day6
    Python活力练习Day5
  • 原文地址:https://www.cnblogs.com/xiao2/p/7711363.html
Copyright © 2011-2022 走看看