玖叶教程网

前端编程开发入门

Spring Bean对象初始化和销毁回调处理的几种配置方法

概述

  • 构造后置处理:在spring容器启动,加载并创建bean对象实例的时候调用,通常为在构造bean对象实例,将相关属性赋值好了调用。
  • 销毁前置处理:在spring容器关闭,在销毁其所创建并管理的bean对象实例之前,执行销毁前置处理,通常可以用来释放外部资源等。

使用方法

1. JDK注解方式

  1. 构造后置处理:使用@PostConstruct注解对应的方法
  2. 销毁前置处理:使用@PreDestroy注解对应的方法。
  • 可以应用在一个或多个方法上面,但是推荐使用一个方法。方法的可见性没有严格要求,即public,default(包可见),protected,private都可以。
  • 基于JDK的注解方式是一个在spring容器外配置的方式,即不是使用spring自身注解。spring对这种方式的支持,主要是通过spring的CommonAnnotationBeanPostProcessor,这个BeanPostProcessor在spring容器创建bean之后和销毁bean之前调用对应的方法。

2. Spring的接口方式

  1. 构造后置处理:实现InitializingBean接口的afterPropertiesSet方法;
  2. 销毁前置处理:实现DisposableBean接口的destroy方法。
  3. 除了使用JDK提供的@PostConstruct和@PreDestroy,在spring中也可以自定义注解来实现,具体为通过InitDestroyAnnotationBeanPostProcessor来实现。CommonAnnotationBeanPostProcessor就是InitDestroyAnnotationBeanPostProcessor的子类,指定注解@PostConstruct和@PreDestroy。

3. XML配置或者@Bean注解

  1. 构造后置处理:在bean标签的init-method中指定处理方法;或者使用@Bean注解的initMethod指定,其中@Bean通常为@Configuration(或者是@Component或@Component的子注解,如@Service,@Configuration是@Component的一个子注解)注解里面的@Bean方法;
  2. 销毁前置处理:在bean标签的destroy-method中指定处理方法;或者使用@Bean注解的destroyMethod指定。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言