目录
1. 前言
在之前的文章中,我们介绍了如何使用 @Bean
注解指定初始化和销毁的方法,也介绍了使用 InitializingBean
和 DisposableBean
来处理 bean
的初始化和销毁。除此之外,在 JDK
中还提供了两个注解能够在 bean
创建完成且属性赋值完成之后初始化方法之前执行一些工作和在容器销毁 bean
之前通知我们进行一些工作
2. @PostConstruct
注解和 @PreDestroy
注解
2.1. @PostConstruct
注解
@PostConstruct
注解是 Java
自己的注解,是 JSR-250
规范里面定义的一个注解
@PostConstruct
注解被用来修饰一个非静态的void()
方法。被@PostConstruct
注解修饰的方法会在服务器加载Servlet
的时候运行,并且只会被服务器执行一次。被@PostConstruct
注解修饰的方法通常在构造函数之后,init()
初始化方法之前执行- 通常会在
Spring
框架中使用到@PostConstruct
注解,该注解的方法在整个bean
初始化中的执行顺序
Constructor(构造方法)--> @Autowired(依赖注入)--> @PostConstruct(注解的方法)
2.2. @PreDestroy
注解
@PreDestroy
注解同样是 Java
提供的,它也是 JSR-250
规范里面定义的一个注解
- 被
@PreDestroy
注解修饰的方法会在服务器卸载Servlet
的时候运行,并且只会被服务器调用一次,类似于Servlet
的destroy()
方法。被@PreDestroy
注解修饰的方法会在destroy()
销毁方法之前执行
@PreDestroy --> destroy() --> bean 销毁
3. 使用 @PostConstruct
和 @PreDestroy
注解
3.1. 创建实体类
public class Dog {
public Dog() {
System