JavaEE——Bean的生命周期

目录

1、实例化Bean

2、设置Bean的属性

3、初始化Bean

(1)、执行通知

(2)、初始化的前置方法

(3)、初始化方法

(4)、执行自定义方法

(5)、初始化的后置方法

4、使用Bean

5、销毁Bean

(1)、DestructionAwareBeanPostProcessor接口

(2)、DisposableBean接口

(3)、自定义方法


JavaEE——Bean的生命周期_第1张图片

1、实例化Bean

实例化Bean就是为其分配内存空间。当客户端向容器请求一个尚未初始化的bean时,容器就会调用doCreateBean()方法进行实例化。

2、设置Bean的属性

当Bean的实例创建完成后就会对其进行属性设置,也就是依赖注入,将依赖的Bean复制到当前类的属性上。

3、初始化Bean

实例化和属性设置是 Java 级别的系统"事件",操作过程不可人工干预和修改的。而初始化则是给开发者提供的,可以在实例化之后、类加载完成之前进行自定义"事件"处理。

(1)、执行通知

执行各种Aware通知的方法:BeanNameAware、BeanFactoryAware、ApplicationContextAware等接口方法。通过这些接口可以让我们拿到BeanName、BeanFactory等资源。

(2)、初始化的前置方法

执行BeanPostProcessor的初始化前置方法postProcessBeforelnitialization(),对Bean进行一些自定义的前置处理。

(3)、初始化方法

依赖注入操作之后执行@PostConstruct的初始化方法。

(4)、执行自定义方法

如果有指定init-method()方法,就执行用户自定义的初始化方法

(5)、初始化的后置方法

执行BeanPostProcessor的初始化后置方法

4、使用Bean

初始化完成就表示Bean创建成功,之后就可以使用这个Bean。当该Bean不再需要时,就进行销毁操作。

5、销毁Bean

销毁Bean对象时执行@PreDestroy的销毁方法

(1)、DestructionAwareBeanPostProcessor接口

判断Bean是否实现DestructionAwareBeanPostProcessor接口,如果实现就执行DestructionAwareBeanPostProcessor后置处理器的销毁回调方法。

(2)、DisposableBean接口

判断Bean是否实现DisposableBean接口,如果实现就调用其实现的destroy()方法

(3)、自定义方法

判断这个Bean是否配置自定义的销毁方法,如果有就调用其配置的销毁方法。

你可能感兴趣的:(JavaEE,java,java-ee)