BeanFactory:使用简单工厂,负责生产Bean
FactoryBean:被他修饰的的类,成为特殊的类,调用getObgrct()得到最终的类。。。用于类的实现接口重写方法,从而扩展功能
IOC再总结:
实例化AnnotationConfigApplicationContext的时候会做几件事
实例化BeanDefinitionReader会加载很多创世纪的类,用来解析各种注解。比如说解析@Autowire、@Required
接着实例化BeanDefinitionScanner,在容器当中它的实例化是无关紧要的,因为是在解析配置类的时所初始化的扫描器才是真正扫描我们配置类的
BeanDefinitionRegistry,由BeanFactory的实现类来实现了他
ConfigurationClassPostProcessor实现BeanFactoryPostProcessor接口
实现这个接口就会在
图示的方法中去调用实现后置处理器的所有Bean定义
执行完图示方法,Bean定义就算注册好了
调用
图示方法,去实例化所有剩余的单例,把我们的Bean定义注册成我们最终的Bean
其中过程是调用getBean()来实现
在createBean中会调用第一个Bean的后置处理器,可以阻止Bean的创建,可以有我们自己来创建,来到daCreateBean(),进行实例化,填充属性,初始化,最终放到一级缓存当中
问题:::::::::::::::::::::::::::::::::::::::::::::