每日一道面试题 06|Spring Bean 的生命周期(高频必问)
面试题请完整说一下 Spring Bean 从加载到销毁的整个生命周期有哪些关键扩展点一、一句话概括生命周期Bean 从被 Spring 容器实例化 → 属性填充 → 初始化 → 正常使用 → 容器关闭时销毁的完整过程。二、标准生命周期流程按顺序背1. 实例化 Bean通过构造方法反射创建对象此时是一个 “空对象”。2. 填充属性依赖注入Spring 对 Autowired、setter、xml 配置的属性进行依赖注入。3. 执行 Aware 接口如果 Bean 实现了相关 Aware 接口会回调感知容器信息1 BeanNameAware获取自己在容器中的 beanName2BeanFactoryAware获取 BeanFactory3 ApplicationContextAware获取应用上下文4. 执行 BeanPostProcessor#postProcessBeforeInitialization初始化前的后置处理常用来做包装、代理、增强。5. 执行初始化方法按顺序执行1 PostConstruct 标注的方法2InitializingBean#afterPropertiesSet()3init-methodXML / 注解配置的初始化方法6. 执行 BeanPostProcessor#postProcessAfterInitialization初始化后的后置处理AOP 动态代理就是在这里完成的。7. Bean 就绪正常使用可以被注入、调用方法处于运行状态。8. 容器关闭销毁 Bean按顺序执行销毁方法1PreDestroy 标注的方法2DisposableBean#destroy()3destroy-method 配置的销毁方法三、高频考点总结• AOP 代理发生在初始化之后的 BeanPostProcessor• 初始化顺序PostConstruct → afterPropertiesSet → init-method• 销毁顺序PreDestroy → destroy → destroy-method• Aware 接口用于让 Bean 感知 Spring 容器自身资源四、高分简短回答Spring Bean 生命周期主要分为实例化 → 属性注入 → Aware 感知 → 初始化前后增强 → 初始化方法执行 → 正常使用 → 销毁。其中 AOP 代理发生在初始化后的后置处理器初始化和销毁都有三种扩展方式是 Spring 扩展机制的核心。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2451905.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!