实例化建BeanDefinition读取器: AnnotatedBeanDefinitionReader:其主要做了2件事情
1.注册内置BeanPostProcessor
2注册相关的BeanDefinition.
Spring涉及的设计模式:
简单工厂、工厂方法、单例模式、适配器模式、装饰器模式、代理模式、观察者模式、策略模式、模板方法模式、责任链模式
//根据参数类型可以知道,其实可以传入多个annotatedClasses,但是这种情况出现的比较少 public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) { //调用无参构造函数,会先调用父类GenericApplicationContext的构造函数 //父类的构造函数里面就是初始化DefaultListableBeanFactory,并且赋值给beanFactory //本类的构造函数里面,初始化了一个读取器:AnnotatedBeanDefinitionReader read,一个扫描器ClassPathBeanDefinitionScanner scanner //scanner的用处不是很大,它仅仅是在我们外部手动调用 .scan 等方法才有用,常规方式是不会用到scanner对象的 this(); //把传入的类进行注册,这里有两个情况, //传入传统的配置类 //传入bean(虽然一般没有人会这么做 //看到后面会知道spring把传统的带上@Configuration的配置类称之为FULL配置类,不带@Configuration的称之为Lite配置类 //但是我们这里先把带上@Configuration的配置类称之为传统配置类,不带的称之为普通bean register(annotatedClasses); //刷新 refresh(); }
标签:复习,annotatedClasses,Spring,模式,笔记,scanner,Configuration,构造函数 From: https://www.cnblogs.com/zhf123/p/17097170.html