<返回更多

Spring Bean的生命周期(详细解读)

2022-11-18    IT千锋教育
加入收藏

Spring Bean的生命周期简单易懂。在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态。同样的,当一个bean不再被调用时需要进行相关的析构操作,并从bean容器中移除。

Spring bean factory 负责管理在spring容器中被创建的bean的生命周期。Bean的生命周期由两组回调(call back)方法组成。

> 初始化之后调用的回调方法。

> 销毁之前调用的回调方法。

> Spring框架提供了以下四种方式来管理bean的生命周期事件:

> InitializingBean和DisposableBean回调接口

> 针对特殊行为的其他Aware接口

> Bean配置文件中的Custom init()方法和destroy()方法

> @PostConstruct和@PreDestroy注解方式

Bean的生命周期可以表达为:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁

初始化回调

org.springframework.beans.factory.InitializingBean 接口指定一个单一的方法:

因此,你可以简单地实现上述接口和初始化工作可以在 afterPropertiesSet() 方法中执行,如下所示:

在基于 XML 的配置元数据的情况下,你可以使用 init-method 属性来指定带有 void 无参数方法的名称。例如:

下面是类的定义:

销毁回调

org.springframework.beans.factory.DisposableBean 接口指定一个单一的方法:

因此,你可以简单地实现上述接口并且结束工作可以在 destroy() 方法中执行,如下所示:

在基于 XML 的配置元数据的情况下,你可以使用 destroy-method 属性来指定带有 void 无参数方法的名称。例如:

下面是类的定义:

如果你在非 web 应用程序环境中使用 Spring 的 IoC 容器;例如在丰富的客户端桌面环境中;那么在 JVM 中你要注册关闭 hook。这样做可以确保正常关闭,为了让所有的资源都被释放,可以在单个 beans 上调用 destroy 方法。

建议你不要使用 InitializingBean 或者 DisposableBean 的回调方法,因为 XML 配置在命名方法上提供了极大的灵活性。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>