24.有哪些生命周期回调方法?有哪几种实现方式?
有哪些生命周期回调方法?有哪几种实现方式?
有两个重要的bean 生命周期方法,
- 第一个是init , 它是在容器加载bean的时候被调用。
- 第二个方法是 destroy 它是在容器卸载类的时候被调用。
bean 标签有两个重要的属性(init-method和destroy-method)。用它们你可以自己定制初始化和注销方法。它们也
有相应的注解(@PostConstruct和@PreDestroy)。
额外扩展
Spring生命周期全过程大致分为五个阶段:创建前准备阶段、创建实例阶段、依赖注入阶段、容器缓存阶段和销毁实例阶段。
1、创建前准备阶段
这个阶段主要是在开始Bean加载之前,从Spring上下文和相关配置中解析并查找Bean有关的配置内容,
比如init-method
-容器在初始化bean时调用的方法、destory-method
,容器在销毁Bean时调用的方法。
以及,BeanFactoryPostProcessor这类的bean加载过程中的前置和后置处理。
这些类或者配置其实是Spring提供给开发者,用来实现Bean加载过程中的扩展机制,在很多和Spring集成的中间件经常使用,比如Dubbo。
2、创建实例阶段
这个阶段主要是通过反射来创建Bean的实例对象,并且扫描和解析Bean声明的一些属性。
3、依赖注入阶段
在这个阶段,会检测被实例化的Bean是否存在其他依赖,如果存在其他依赖