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中,接口设计的很到位,后面可以配置不同的实现。spring自己的实现,请看下文。
本文深入探讨Spring框架中Bean的实例化策略,介绍InstantiationStrategy接口及其在Bean生成过程中的作用,包括从配置文件获取Bean定义信息,通过构造方法和工厂Bean实例化对象等关键步骤。
1093

被折叠的 条评论
为什么被折叠?



