在线客服
扫描二维码
下载博学谷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栏目的资讯更新。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
参加java程序员培训需要注意哪些问题?
Java编程语言因为高薪资,就业率高,招聘岗位多而备受欢迎。Java学习难不难?应该如何学习Java?这些问题对于初学者来说并不陌生。今天博学谷小编主要针对参加Java程序员培训时,需要注意哪些问题与大家分享,希望可以帮助到更多的Java学习者。那参加java程序员培训需要注意哪些问题?
6141
2019-08-08 12:00:42
Java常量知识点小结
在初学者学习Java的时候,常常会碰到有关于常量的知识点。零基础的小白常常弄不清常量的学习内容。那么什么是常量呢?其实就是在程序中固定不变的值,是不能改变的数据。本文将带着大家梳理一遍常量的定义、分类和作用。
5054
2019-08-19 19:11:01
Java多线程基础知识讲解
Java支持多线程编程,因此用Java编写的应用程序可以同时执行多个任务。Java的多线程机制使用起来非常方便,用户只需关注程序细节的实现,而不用担心后台的多任务系统。本文将为大家讲解有关Java多线程的基础知识,主要内容有多线程的概念、创建、优势和生命周期。
6090
2019-08-21 10:53:43
Java课程设计贪吃蛇讲解
Java课程设计是必不可少的一个重要学习环节,Java程序设计的目的就是加深Java学习者对Java理论基础内容的理解和掌握。今天我们要讲的Java课程设计就是贪吃蛇的小程序设计,以下是具体讲解:
5672
2019-08-30 19:22:50
Java编程八大技能你还不会?
Java编程八大技能你还不会?随着大数据的快速发展,应用范围超广的Java编程语言越来越被看好。许多人包括在职程序员也兴致勃勃也报了Java编程课程,你是否也下定决心要进入Java开发呢?在大家进行Java培训学习之前,想和大家说明一个问题。Java技术的世界是多元而复杂的,需要程序员不断学习。想入行必须做好吃苦的准备。而要想作为互联网Java工程师这些基础技能必须要掌握。
3356
2020-06-12 14:31:18