📜  Spring – 带有示例的 init() 和 destroy() 方法(1)

📅  最后修改于: 2023-12-03 15:20:13.656000             🧑  作者: Mango

Spring – 带有示例的 init() 和 destroy() 方法

在Spring中,你可以使用@PostConstruct@PreDestroy注解来定义初始化和销毁方法。@PostConstruct注解用于在Bean属性设置完成后执行,@PreDestroy注解用于在Bean销毁之前执行。这些方法必须是无参的。

另一种方式是实现InitializingBeanDisposableBean接口,这些接口分别定义了afterPropertiesSet()destroy()方法。这些方法也是在初始化和销毁的时候自动调用的。

以下是示例代码:

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class ExampleBean implements InitializingBean, DisposableBean{

   @PostConstruct
   public void init(){
      // 初始化代码
   }
   
   @PreDestroy
   public void destroy(){
      // 销毁代码
   }

   @Override
   public void afterPropertiesSet() throws Exception {
      // 初始化代码
   }

   @Override
   public void destroy() throws Exception {
      // 销毁代码
   }
}

在上面的代码中,ExampleBean实现了InitializingBeanDisposableBean接口,并定义了init()destroy()方法,并使用@PostConstruct@PreDestroy注解进行了注释。

注:在Spring 5.0及以上版本中,我们建议在初始化和销毁时使用@PostConstruct@PreDestory注解,因为它们更清晰、更简洁,而且与JSR-250规范兼容。InitializingBeanDisposableBean接口在Spring中仍然可以使用,只是在新的代码中不再建议使用。