1、从application context创建获取bean
2、扫描包下带有注解的类,开始注入
3、spring进行推断构造方法,默认使用空参构造。如果用注解就可以开启使用有参构造。
当有参构造方法里面有多个参数时,去容器里面先通过类型找再通过名字找,这里进行一个推断,有六个步骤,分为有方法注入的对象和类注入的对象,最后找到符合的对象。
如果容器里只有一个这个类型的对象,那么多个参数就用这一个对象。
4、对象构建好后,开始寻找加了注解的属性,并开始注入对象的属性,如果属性也是对象,按照第三步继续从容器找。
5、属性注入好后开始处理一个初始化前的方法@post construction,在这里可以加一些逻辑,比如查库注入一些对象的具体属性。
6、也可以通过实现inition的一个接口,去重写方法里写逻辑,这是一个初始化方法。
7、最后在初始化后的方法里面可以实现aop的逻辑。