8.2.4 使用@PostConstruct和@PreDestroy定制生命周期行为
@PostConstruct和@PreDestroy同样位于Javax.annotation包下,也是来自Java EE规范的两个注解,Spring直接借鉴了它们,用于定制Spring容器中Bean的生命周期行为。
XML配置如何指定生命周期方法
前面介绍Spring生命周期时提供了<bean>元素可以指定init-method、 destroy-method两个属性。
bean元素的属性 |
描述 |
|---|---|
init-method属性 |
用于指定Bean的初始化方法,Spring容器将会在Bean的依赖关系注入完成后回调该方法。 |
destroy-method属性 |
用于指定Bean销毁之前的方法,Spring容器将会在销毁该Bean之前回调该方法。 |
使用注解如何指定生命周期方法
@PostConstruct和@PreDestroy两个注解的作用大致与此相似,它们都用于修饰方法,无须任何属性。
其中
@PostConstruct修饰的方法是Bean的初始化方法;@PreDestroy修饰的方法是Bean销毁之前的要调用方法。
程序示例
1 | E:\workspace_QingLiangJiJavaEEQiYeYingYongShiZhang5\lifecycle |
例如如下Bean实现类。
1 | package org.crazyit.app.service.impl; |
上面的Chinese类中使用了@PostConstruct修饰init()方法,这就让Spring在该Bean的依赖关系注入完成之后回调该方法;使用了@PreDestroy修饰close()方法,这就让Spring在销毁该Bean之前回调该方法。