一. 前言
在上一篇文章Spring源码系列——容器的启动过程(一)中,我们解析了构造方法. 本篇文章我们继续解析第二个方法
public AnnotationConfigApplicationContext(Class<?>... componentClasses) {
this();
// 2.基于配置类注册相关信息
register(componentClasses);
refresh();
}
二. register()方法解析
无参构造方法解析完毕之后,接下来,构造方法将进行执行第二个方法:
// 从我们的例子中, 这里的componentClasses就是我们传进来的Config.class
public void register(Class<?>... componentClasses) {
Assert.notEmpty(componentClasses, "At least one component class must be specified");
// 实际上是委托给AnnotatedBeanDefinitionReader类来注册
this.reader.register(componentClasses);
}
// ------------------------分割线-------------------------
public void register(Class<?>... componentClasses) {
for (</