Spring注解驱动开发——Bean的生命周期

1、Bean指定初始化和销毁方法

 还是先写一个配置类:

Spring注解驱动开发——Bean的生命周期

测试:Spring注解驱动开发——Bean的生命周期

改为多实例的Bean:

Spring注解驱动开发——Bean的生命周期

再次测试:

Spring注解驱动开发——Bean的生命周期

 上篇文章——《Spring注解驱动开发——组件注册方法》中已经提到过:多实例的Bean在开启容器时,不会创建对象,只有在代码中编写获取该Bean的代码时才会创建对象,所以这次没有构造对象,也就没有执行初始化方法喽。

若在测试代码中显式的取获取Bean

Spring注解驱动开发——Bean的生命周期

2、通过让Bean实现InitializingBean(定义初始化)和实现DisposableBean(定义销毁方法)

Spring注解驱动开发——Bean的生命周期测试:

Spring注解驱动开发——Bean的生命周期

3、使用JSR250规范中@PostConstruct和@PreDestroy

@PostConstruct(标注在方法上):在bean创建完成并且实属性赋值完成,来执行初始化方法。

@PreDestroy(标注在方法上):在容器销毁Bean之前通知我们进行清理工作。

和第一种方式差不多,只是这两个注解是直接标注在方法上的。

Spring注解驱动开发——Bean的生命周期

4、BeanPostProcessor(是个接口)后置处理器

在Bean的初始化前后做些处理工作。

此接口有连个方法:postProcessBeforeInitialization():在初始化之前工作

Spring注解驱动开发——Bean的生命周期

postProcessAfterInitialization():在初始化之后工作

Spring注解驱动开发——Bean的生命周期

写个实现类来实现这两个方法

Spring注解驱动开发——Bean的生命周期

测试:

Spring注解驱动开发——Bean的生命周期