Spring 容器在进行实例化时,会将 xml 配置的<bean>的信息封装成一个 BeanDefinition 对象,Spring 根据 BeanDefinition 来创建 Bean 对象,里面有很多的属性用来描述 Bean
对于一个 Bean 来说,实例化有多种方式,包括通过 BeanDefinition 里定义的 Supplier 接口、或者是工厂方法、再或者是 Bean 本身的有参或无参构造函数。
Spring 会依次尝试用上面的方法来创建一个 Bean,如果是用有参构造函数的方式创建,那么这个时候还会完成构造器注入。
第二个阶段是依赖注入阶段,