Spring Bean的生命周期
首先通过BeanDefinition类获取bean的定义信息,例如:是否为单例bean、是否为懒加载等信息。
(1)调用类的构造器实例化bean。
(2)依赖注入。比如setter注入,像平时开发用的@Autowire就是这一步完成的。
(3)如果该类实现了一些Aware接口,则调用这些Aware接口重写的方法。
(4)执行bean的前置处理器BeanPostProcessor。
(5)执行初始化。比如bean实现了initial接口或者自定义初始化方法@PostConstruct。
(6)执行bean的后置处理器BeanPostProcessor。在这一步主要是对bean进行增强,有可能在这里产生代理对象。
(7)使用。
(8)销毁。