StartDemo
public class StartDemo {
public static void main(String[] args) {
ApplicationContext context =
new AnnotationConfigApplicationContext("com.my.config");
TestConfig testConfig = context.getBean(TestConfig.class);
System.out.println("==========>main");
System.out.println(testConfig.getValue());
}
}
关键类
- AnnotationConfigApplicationContext
根据包扫描对象
记录扫描到的类的具体信息(描述类)
接口,可自定义参与类初始化过程逻辑
工厂钩子,允许自定义修改应用程序上下文的 bean 定义,调整上下文底层 bean 工厂的 bean 属性值。
后期处理器父类,有很多子类;不同子类提供了不同的实现方法,参与到bean初始化过程中
例:AutowiredAnnotationBeanPostProcessor
大体流程
scan -> beanPorcessor(描述bean信息) -> 放到 configMap 中 -> refresh -> 通过bean工厂实例化类 -> 放到单例池中
AnnotationConfigApplicationContext详解
- 类图
- 流程图