对象生命周期|学习笔记

简介: 快速学习对象生命周期

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术对象生命周期学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15900


对象生命周期


内容介绍:

一、spring 容器接口分类

二、安装顺序

 

一、spring 容器接口分类

Bean 的容器负责从对象的创建到销毁的全主动周期,如果需要知道对象的创建过程是这样的,spring 容器提供了一系列接口,可以在整个对象的生命周期不同的阶

段做一些处理。

这些接口会分成两类,一类是 Bean 级生命周期接口,一类是容器级生命周期接口。Bean 级接口只会影响特定的 Bean 的生命周期,就是在特定的 Bean 的生命周期里起作用,而容器级的接口只是在这个容器中间所有的 Bean 都会起作用 

1Bean 级生命周期接

spring 容器中,Bean 级生命周期接口一共有五个,

第一个是 BeanNameAware,用于获得Bean 对象的名称;

第二个是 BeanFactoryAware,用来得到 BeanFactory 容器对象;第三个

ApplicationContextAware,用来得到 ApplicationContext 容器对象;

第四个是 InitializingBean;

最后一个是

DisposableBean,InitializingBean 和 DisposableBean 是分别在 Bean 对象的创建的时候的接口和被废弃的时候的接口。

这五个 Bean 级的生命周期接口只是针对特定的 Bean 对象才会起作用,不会对所

有的 Bean 对象起作用。

如果某个 Bean 对需要使用这些接口,Bean 对就可以实现 Initializing 这些接口,就自然会有这些接口中间的方法,这些接口中间的方法就会在生命周期不同的

阶段被调用,做一些这个阶段要做的事情。

2、容器级生命周期接口

容器级生命周期接口主要是两个,

一个是InstantiationAwareBeanPostPorcessorAdaptor,另一个 BeanPostProcessor,容器级接口是对在容器中间所有的 Bean 对象都会起作用。

 

二、安装顺序

1、在生命周期中间这两类接口是安装什么样的顺序调用的?

image.png

当实例化一个对象的时候,首先被调用的是容器级

InstantiationAwareBeanPostProces

接口中间的 postProcessBeforeInstation,这个接口被调用以后会调用 Bean 对象

自身的构造函数,Bean 对象自身的构造函数调用完以后会调另外一个容器级的接口

InstantiationAwareBeanPostAdapter

的 postProcessPropertyValuse,这个接口完成以后,会对 Bean 对象的属性进行赋值,Bean 对象的属性往往来自于在配中间告诉它的关联,或者是某些配置文件的信息需要放到 Bean 的属性中去。当 Bean 的属性赋值被完成以后会调用 Bean 级的接口 BeanNameAware 的 SaidBeanName,告诉这个对象的名称是什么,然后是 BeanFactoryAware SaidBeanFactory 方法,可以拿到 BeanFactory 对象;然后是 ApplicationContextAware 的 SaidApplicationContext 接口,这样可以拿到ApplicationContext 的对象这三个 Aware 接口完成以后,调用的是另外一个 Bean 级接口 BeanPostProcessor. postProcessBeforeInitialization 的接口,完成以后是另外一个 Bean 级接口 InitializingBean.

afterPropertiesSet,这些方法都调完以后会调用在 art Bean 注解中指定的

initMethod 方法,

然后是容器级的接口

BeanPostProcessor. postProcessAfterInitialization,然后是

InstantiationAwareBeanPostProcessorAdapter.postProcess

AfterInstantiation 的接口,两个容器接口被调完以后 Bean 对象就创建成功了,就

可以正常使用 Bean 对象。

2、当这个容器被终止的时候,容器中间的 Bean 对象也会被销毁,被销毁后调的是 DisposableBean.able 方法,然后是 art Bean 注解中描述的 detroyMethod 的属性

定义的方法,最终把 Bean 对象销毁。

相关文章
|
2月前
|
JavaScript 前端开发
生命周期
【8月更文挑战第25天】
26 0
|
2月前
NettyHandler 常用生命周期方法
NettyHandler 常用生命周期方法
15 0
|
5月前
|
缓存 JavaScript
onActivated 生命周期的使用和介绍
onActivated 生命周期的使用和介绍
285 3
|
5月前
|
前端开发 JavaScript Python
学不懂生命周期函数正常吗?
学不懂生命周期函数正常吗?
|
5月前
|
小程序 前端开发 API
小程序的生命周期以及页面生命周期
小程序的生命周期以及页面生命周期
56 0
|
5月前
将生命周期方法添加到类中
将生命周期方法添加到类中
|
11月前
|
小程序 UED
小程序的生命周期讲解
小程序的生命周期讲解
56 0
IT服务生命周期
IT服务生命周期
287 0
|
编译器
Stemciljs学习之组件生命周期
Stencil 是一个生成 Web Components(更确切地说,是自定义元素)的编译器。Stencil 将最流行的框架的最佳概念结合到一个简单的构建时工具中。 现在让我们一起学习其中的组件生命周期部分。
64 0
|
存储 安全 Java