- 实现初始化和销毁bean之前进行的操作,只能有一个方法可以用此注释进行注释,方法不能有参数,返回值必需是void,方法需要是非静态的
注解 |
说明 |
@PostConstruct |
在构造方法和init方法(如果有的话)之间得到调用,且只会执行一次。 |
@PreDestory |
注解的方法在destory()方法调用后得到执行。 |
- 引深一点,Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下三种:
- 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;
- 通过 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;
- 在指定方法上加上@PostConstruct 或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用
- 但他们之前的先后顺序
Constructor > @PostConstruct >InitializingBean > init-method
示例
public class TestService{ @PostConstruct public void init() { System.out.println(“初始化”); }
@PreDestroy public void dostory() { System.out.println(“销毁”); } } |