bean生命周期的4个阶段是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bean生命周期的4个阶段是啥?相关的知识,希望对你有一定的参考价值。

bean 实例的生命周期如下:

1、为了演示spring的生命周期,首先必须要加入spring的相关包。

2、新建一个SpringBoy类 实现BeanNameAware,      BeanFactoryAware,      InitializingBean,      DisposableBean

要注意加入相关的包。新建一个processor类,用于处理bean,叫作bean处理器,在xml中作如下配置:<bean class="zpx.life.Processor"/>

3、分别实现它们的方法。并在方法中加入必须的信息,以便后面理解与观察。

4、在配置文件中配置springboy。指定初使化方法与销毁方法。

好处:

Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。例如,可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。

它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。

Spring对工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。

以上内容参考:百度百科-spring

参考技术A

第一阶段:实例化(Instantiation),实例化是指Bean,从Bean到Object。

第二阶段:属性赋值

第三阶段:初始化(Initialization)

第四阶段:销毁

备注:spring的核心就是Bean,Bean的生命周期是通过spring-context(上下文)控制的,而spring-context又基于spring-core进行的,只有Bean进行初始化后被IOC容器所管理,才可以在应用中调用任意已经初始化的Bean。



创建bean的三种方法

1、类构造器

如:<bean id=”personService”class=”com.spring.service.impl.PersonServiceBean”/>

2、静态工厂(Static Factory)

如:<bean id=”personService”class=”com.spring.service.impl.PersonServiceBeanFactory”factory-method=”createPersonServiceBean”/>

3、实例工厂

如:<bean id=”personService”class=”com.spring.service.impl.PersonServiceBeanFactory”factory-bean=”PersonServiceBeanFacotory”factory-method=”createPersonServiceBean”/>

Java面试小短文Spring Bean生命周期的执行流程

欢迎关注Java面试系列,不定期更新面试小短文。欢迎一键三连!

文章目录

Spring Bean生命周期的执行流程

  Spring生命周期全过程大致分为五个阶段:创建前准备阶段、创建实例阶段、 依赖注入阶段、 容器缓存阶段和销毁实例阶段。

这张是Spring Bean生命周期完整流程图

一、创建前准备阶段

  这个阶段主要的作用是,Bean 在开始加载之前,需要从上下文和相关配置中解析并查找 Bean 有关的扩展实现, 比如像 init-method(容器在初始化 bean 时调用的方法)、destory-method(容器在销毁 bean 时调用的方法)。 以及BeanFactoryPostProcessor 这类的 bean 加载过程中的前置和后置处理。 这些类或者配置其实是 Spring 提供给开发者,用来实现 Bean 加载过程中的扩展机制,在很多和 Spring 集成的中间件中比较常见,比如 Dubbo


二、创建实例阶段

这个阶段主要是通过反射来创建 Bean 的实例对象,并且扫描和解析 Bean 声明的一些属性。


三、依赖注入阶段

如果被实例化的 Bean 存在依赖其他 Bean 对象的情况,则需要对这些依赖 bean 进行对象注入。比如常见的@Autowiredsetter 注入等依赖注入的配置形式。 同时,在这个阶段会触发一些扩展的调用, 比如常见的扩展类 : BeanPostProcessors(用来实现 bean 初始化前后的扩展回调)、 InitializingBean(这个类有一个afterPropertiesSet(),这个在工作中也比较常见)、 BeanFactoryAware 等等。


四、容器缓存阶段

容器缓存阶段主要是把 bean 保存到容器以及 Spring 的缓存中,到了这个阶段, Bean 就可以被开发者使用了。 这个阶段涉及到的操作常见的有init-method ,这个属性配置的方法会在这个阶段调用。 以及像 BeanPostProcessors 方法中的后置处理器方法,比如:postProcessAfterInitialization也会在这个阶段触发。


五、销毁实例阶段

Spring 应用上下文关闭时,该上下文中的所有 bean 都会被销毁。 如果存在 Bean 实现了 DisposableBean 接口,或者配置了 destory-method 属性, 则会在这个阶段被调用。


Spring Bean生命周期的高清流程图


欢迎一键三连~

有问题请留言,大家一起探讨学习

----------------------Talk is cheap, show me the code-----------------------

以上是关于bean生命周期的4个阶段是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Bean的生命周期

spring bean的生命周期是怎样的,代码示例

Spring Bean 生命周期

Spring Bean 生命周期

spring生成bean对象的生命周期都有哪些种类?

spring中bean的生命周期是怎么样的