实例化好了才能操作里面的属性 这个时候刚实例化好对象是空的 初始化的对象
依赖注入是注入属性 也就是赋值给对象的属性
首先是起别名 setBeanName 给bean起别名嘛 防止重复 别名是在实例化之前就已经存在了的
所以我们如果在后面要修改别名实际上是不行的 那么就应该在实例化之前修改别名 因为在那之前他就已经被注册在容器里
一般我们通过注解改就行 没必要那么麻烦的
如果setBeanFactory一般3.0之前跟setApplicationContext一般3.0之后同时实现
对于单例来说 以setApplicationContext为准 也就是说在容器初始化的时候就被创建了
在初始化之前 可以调用befor方法修改或增强 Bean 的属性 ,并将修改后的对象返回给容器
这个时候还没有依赖关系 所以无法修改
@PostConsrtuct自定义的初始方法可以没有 如果有的话是先执行自定义的初始化方法
真正初始化的是 afterPropertiesSet 也就是在属性全部赋值后调用这个方法 开始初始化
初始化之后 调用postprocessAfterInitialization去增强功能 也可以用一个新的bean去替换旧的bean
如果有多个PostProcessor 按照注册的先后顺序去执行 不是按照字符串排序的哈 按照我们xml的顺序
然后开始生存期
然后就是销毁