SpringBean的生命周期
时间: 2023-12-03 11:09:12 浏览: 72
Spring Bean的生命周期包括以下10个阶段:
1. 实例化:Spring容器实例化Bean时,会通过反射创建一个Java对象。
2. 属性注入:Spring容器将Bean的属性值注入到对象中,可以通过构造函数注入、Setter方法注入等方式。
3. BeanNameAware接口回调:如果Bean实现了BeanNameAware接口,Spring容器会调用setBeanName()方法,将Bean的名称传递到Bean中。
4. BeanFactoryAware接口回调:如果Bean实现了BeanFactoryAware接口,Spring容器会调用setBeanFactory()方法,将BeanFactory实例传递到Bean中。
5. ApplicationContextAware接口回调:如果Bean实现了ApplicationContextAware接口,Spring容器会调用setApplicationContext()方法,将ApplicationContext实例传递到Bean中。
6. BeanPostProcessor接口Before方法回调:如果容器中存在BeanPostProcessor实现类,Spring容器会在Bean初始化前调用所有实现了Before方法的BeanPostProcessor实现类的方法。
7. 初始化方法:如果Bean实现了InitializingBean接口,Spring容器会调用afterPropertiesSet()方法。如果在Bean配置文件中指定了init-method属性,Spring容器会调用指定的初始化方法。
8. BeanPostProcessor接口After方法回调:如果容器中存在BeanPostProcessor实现类,Spring容器会在Bean初始化后调用所有实现了After方法的BeanPostProcessor实现类的方法。
9. 使用Bean:Bean已经可以使用了,它可以处理业务逻辑,执行操作等。
10. 销毁方法:如果Bean实现了DisposableBean接口,Spring容器会在容器关闭时调用destroy()方法。如果在Bean配置文件中指定了destroy-method属性,Spring容器会调用指定的销毁方法。
总结:Spring Bean的生命周期包括实例化、属性注入、BeanNameAware、BeanFactoryAware、ApplicationContextAware、BeanPostProcessor接口Before方法回调、初始化方法、BeanPostProcessor接口After方法回调、使用Bean和销毁方法10个阶段。其中,属性注入和初始化方法是Bean生命周期的核心。BeanPostProcessor接口的Before和After方法回调,可以在Bean初始化前后做一些自定义操作。
阅读全文