Spring Bean的生命周期,《Spring 实战》书中的…
2018-08-03 07:30:25来源:博客园 阅读 ()
连着两天的面试 ,都问到了 Spring 的Bean的生命周期,其中还包括 昨晚一波阿里的电话面试。这里找到了Spring 实战中的官方说法。希望各位要面试的小伙伴记住,以后有可能,或者是有时间 去看看源码最好(也包括我自己)。哈哈
Bean 的生命周期
在传统的Java应用中,bean的生命周期很简单。使用Java 关键字 new 进行bean 实例化,然后该 bean 就可以使用了。一旦该bean 不再被使用,则由 java 自动进行垃圾回收。
相比之下,Spring 容器中的 bean 的生命周期就显得相对复杂多了。正确理解Spring bean 的生命周期非常重要,因为你或许要利用 Spring 提供的扩展点来自定义bean 的创建过程。图1.5展示了 bean 装载到 spring 应用上下文中的一个典型的生命周期过程。(手机拍摄的。。)
注意图中所说:bean 在 Spring 容器中从创建到销毁经历了若干阶段,每一阶段都可以针对 Spring 如何管理 bean 进行个性化定制
正如你所见的,在 bean 准备就绪之前, bean 工厂执行了若干启动步骤。我们对图1.5 进行详细描述:(这里是需要背下来的)
1. Spring 对 bean 进行实例化;
2. Spring 将值和 bean 的引用注入到bean 对应的属性中;
3. 如果 bean 实现了 BeanNameAware 接口,Spring 将 bean 的 ID 传递给 setBeanName()方法;
4. 如果 bean 实现了 BeanFactoryAware 接口,Spring 将调用 setBeanFactory ()方法,将 BeanFactory 容器实例传入;
5. 如果 bean 实现了 ApplicationContextAware 接口,Spring 将调用 set-ApplicationContext () 方法,将 bean 所在的应用上下文的引用传入进来;
6. 如果 bean 实现了 BeanPostProcessor 接口,Spring 将调用他们的 post-Process-Before-Initialization () 方法;
7. 如果 bean 实现了 InitializingBean 接口,Spring 将调用它们的 after-Properties-Set () 方法。类似的,如果 bean 使用 init -method 声明了初始化方法,该方法也会被调用;
8. 如果 bean 实现了 BeanPostProcessor 接口, Spring 将调用它们的 post-Process-After-Initialization () 方法;
9. 此时,bean 已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用上下文被销毁;
10. 如果 bean 实现了 Disposable-Bean 接口,Spring 将调用它的 destory () 接口方法。同样,如果 bean 使用 destory-method 声明了销毁方法,该方法也会被调用。
以上就是书中所说,请牢记,面试中才能从容应对。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:klockwork修改
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash