2026/5/21 19:36:45
网站建设
项目流程
企业网站建设itcask,商标怎么设计,手机网站模版php源码,贵州网站设计公司01-什么是Bean的生命周期Spring其实就是一个管理Bean对象的工厂。它负责对象的创建#xff0c;对象的销毁等。所谓的生命周期就是#xff1a;对象从创建开始到最终销毁的整个过程02-为什么要知道Bean的生命周期生命周期的本质#xff1a;在哪个时间节点上调用了哪个类的哪个…01-什么是Bean的生命周期Spring其实就是一个管理Bean对象的工厂。它负责对象的创建对象的销毁等。所谓的生命周期就是对象从创建开始到最终销毁的整个过程02-为什么要知道Bean的生命周期生命周期的本质在哪个时间节点上调用了哪个类的哪个方法我们需要充分的了解在这个生命线上都有哪些特殊的时间节点。 只有我们知道了特殊的时间节点都在哪到时我们才可以确定代码写到哪03-Bean的生命周期之5步Bean生命周期的管理可以参考Spring的源码AbstractAutowireCapableBeanFactory类的doCreateBean()方法Bean生命周期可以粗略的划分为五大步第一步实例化Bean—— 调用无参数构造方法第二步Bean属性赋值—— 调用set() 方法第三步初始化Bean—— 会调用Bean的 init() 方法init() 方法需要自己写自己配置方法名随意第四步使用Bean第五步销毁Bean—— 会调用Bean的 destroy() 方法这个方法需要自己写自己配置方法名随意注意点只有正常关闭spring容器bean的销毁方法才会被调用04-Bean生命周期之7步 —— 面试在以上的5步中第3步是初始化Bean如果你还想在初始化前和初始化后添加代码可以加入“Bean后处理器”编写一个类实现BeanPostProcessor类并且重写before和after方法import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; Component public class LogBeanPostProcessor implements BeanPostProcessor { // 方法有两个参数 // 第一个参数刚创建的bean对象 // 第二个参数bean的名字 // 在调用initBean()前执行即初始化Bean方法执行之前调用 Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println(Bean后处理器的before方法执行即将开始初始化); return bean; } // 在调用initBean()后执行即初始化Bean方法执行之后调用 Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println(Bean后处理器的after方法执行已完成初始化); return bean; } }如果加上Bean后处理器的话Bean的生命周期就是7步了掌握以上7步应付面试足矣05-Bean生命周期之10步关于上图中检查Bean是否实现了Aware的相关接口的说明Aware相关的接口包括BeanNameAware、BeanClassLoaderAware、BeanFactoryAware当Bean实现了BeanNameAwareSpring会将Bean的名字传递给Bean当Bean实现了BeanClassLoaderAwareSpring会将加载该Bean的类加载器传递给Bean当Bean实现了BeanFactoryAwareSpring会将Bean工厂对象传递给Bean对于SpringBean的生命周期掌握之前的7步即可够用