1.Bean生命周期的各阶段
(1)实例化Bean(为Bean分配内存空间)
(2)设置属性(Bean注入和装配)
(3)Bean的初始化
1)实现了各种Aware通知的方法,如BeanNameAware,BeanFactoryAware,ApplicationContextAware的接口方法
2)执行BeanPostProcessor初始化前置方法
3)执行@PostConstruct初始化方法,依赖注入操作之后被执行
4)执行自己指定的int-method方法(前提是要有指定)
5)执行BeanPostProcessor初始化后置方法
(4)使用Bean
(5)销毁Bean(@PreDestroy,DisposableBean接口方法,destory-method方法)
2.实例化和初始化的区别
实例化和属性设置是Java级别的系统“事件”,其操作过程不氪人工干预和修改,而初始化是给开发者提供的,可以在实例化之后,类加载完成之前进行自定义“事件”处理。
3.@PostConstructhe和@PreDestroy的效用
@PostConstructhe和@PreDestroy是影响Servlet生命周期的注解,被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后,init()方法之前执行。PreDestroy方法在destroy()方法执行之后执行。