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
之前回调该方法。