在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
如何管理Spring Bean的生命周期?回答这个问题之前,我们可以先来看看Bean的定义,Bean是一个被实例化,组装,并通过Spring IOC容器所管理的对象。换句话说,那些组成应用程序的主体以及由Spring IOC容器所管理的对象就是bean。另外,在Spring中bean默认都是单例的。想要管理Spring Bean的生命周期,大概要按照以下步骤去做:

步骤1:实例化一个Bean,也就是我们通常说的new;
步骤2:按照Spring上下文对实例化的Bean进行配置,也就是IOC注入;
步骤3:如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的是Spring配置文件中Bean的ID;
步骤4:如果这个Bean实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(),传递的是Spring工厂本身(可以用这个方法获取到其他Bean);
步骤5:如果这个Bean实现了ApplicationContextAware接口,会调用;setApplicationContext(ApplicationContext)方法,传入Spring上下文,该方式同样可以实现步骤4,但比4更好,以为ApplicationContext是BeanFactory的子接口,有更多的实现方法;
步骤6:如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor经常被用作是Bean内容的更改,并且由于这个是在Bean初始化结束时调用After方法,也可用于内存或缓存技术;
步骤7:如果这个Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法;
步骤8. 如果这个Bean关联了BeanPostProcessor接口,将会调用postAfterInitialization方法。需要注意:以上工作完成以后就可以用这个Bean了,那这个Bean是一个single的,所以一般情况下我们调用同一个ID的Bean会是在内容地址相同的实例;
步骤9:当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean接口,会调用其实现的destroy方法;
步骤10:最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。
以上就是管理Spring Bean生命周期的十大步骤解析。相信大家看到这里,对于刚开始的问题已经有自己的答案了。关于Java的更多答疑解惑,敬请关注博学谷Java栏目的资讯更新。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
JavaWeb开发学习路线及学习目标
JavaWeb开发学习路线及学习目标,JavaWeb阶段主要学习Linux系统、HTML5&CSS&Nginx、Web服务器基础、Servlet、Cookie&Session、JSP、EL、JSTL、Filter&Listener、文件上传和下载、MySQL、JDBC、MyBatis、JavaScript、jQuery、Ajax、VUE、ElementUI+案例、Redis、Maven基础等知识。
6348
2020-04-16 16:05:55
Java基础语法学习之常量与变量
今天Java基础语法学习的内容是常量与变量,顾名思义,常量就是不会发生改变的,而变量则恰好相反。本文主要总结了常量的概念、分类、案例演示,还有变量的概念、格式以及使用。下面就一起梳理下相关得基础知识点吧~
5481
2020-05-14 15:31:15
成为Java架构师需要学习哪些知识?
成为 Java 架构师需要学习哪些知识?相信 Java 架构师是很多程序员的终极目标,其实立志成为Java 架构师,最应该做好准备的是保持一颗持之以恒学习的心。学习专业技能知识固然重要,但是如果没有这个前提,许多人在通往梦想的路上就已经放弃了。因此,学习态度是一切的前提和决定成败的关键因素。
6767
2020-06-19 10:52:01
想学Java大学应该报哪个专业?
想学Java大学应该报哪个专业?大部分人会选择计算机应用技术或计算机科学与技术专业,里面涉及Java相关的课程,还有一些计算机基础知识,毕业以后从事软件开发的工作是比较对口的。Java是一种软件开发技术,大学一般不会重点教,会开这么一门课程,一周1-2个课时,教学内容相当有限算入门级别,想深入学习建议再报个Java培训班学习。
6759
2021-01-28 14:38:03
Java多线程遇到死锁三招彻底解决
在多线程环境中,多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。这种情况称为死锁。
4554
2022-06-22 15:00:01
