DefaultListableBeanFactory对bean的管理工厂,包括bean的生成,从class到bean的实例化。spring特为这个实例化过程,定义了接口InstantiationStrategy,直译为实例化策略。里面分别定义了几个接口方法。
 
public interface InstantiationStrategy {
 
    // bd 从配置文件或者注解中获取的bean定义信息
    // beanName bean的名称
    // owner bean的工厂
    // 通过这三个参数,实例化对象
    Object instantiate(RootBeanDefinition bd, String beanName, BeanFactory owner)
            throws BeansException;
 
    // ctor 实例化指定的类的构造方法
    // args 实例化制定构造方法的实例化参数
    // 通过这五个参数,实例化对象
    Object instantiate(RootBeanDefinition bd, String beanName, BeanFactory owner,
            Constructor<?> ctor, Object... args) throws BeansException;
 
    // factoryBean 工厂bean
    // factoryMethod 工厂method
    // args  工厂bean的实例化参数
    // 通过这六个参数,实例化对象
    Object instantiate(RootBeanDefinition bd, String beanName, BeanFactory owner,
            Object factoryBean, Method factoryMethod, Object... args) throws BeansException;
}

 

 
继承类图:
spring实例化一:InstantiationStrategy
 
在spring中,接口设计的很到位,后面可以配置不同的实现。spring自己的实现,请看下文。
 
 
 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-03-19
  • 2022-12-23
  • 2021-12-19
猜你喜欢
  • 2022-12-23
  • 2022-02-09
  • 2021-04-14
  • 2021-10-29
  • 2022-02-12
  • 2021-06-15
  • 2022-02-13
相关资源
相似解决方案