spring创建bean的过程
-
选取构造方法,实例化bean,默认是无参构造。
a.如果有多个有参构造,会选取有@Autowrited注解的构造方法,否则会报错。有参构造方法参数赋值,会先根据byType后byName赋值。 -
依赖注入(扫描属性获取带有@Autowrited注解的属性,根据反射为属性赋值)。
-
初始化前(扫描方法获取带有@PostConstruct属性的方法,根据注解调用方法)。
-
初始化(判断该类是否实现InitializingBean接口,是则执行afterPropertiesSet()方法,完成初始化)。
-
初始化后(Aop)。
-
生成代理对象。
-
放入Map单例池。
-
bean对象。