spring实例化一:InstantiationStrategy
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自己的实现,请看下文。
松下问童子,言师采药去。
只言此山中,云深不知处。