Spring注解驱动开发——Bean的生命周期
1、Bean指定初始化和销毁方法
还是先写一个配置类:
测试:
改为多实例的Bean:
再次测试:
上篇文章——《Spring注解驱动开发——组件注册方法》中已经提到过:多实例的Bean在开启容器时,不会创建对象,只有在代码中编写获取该Bean的代码时才会创建对象,所以这次没有构造对象,也就没有执行初始化方法喽。
若在测试代码中显式的取获取Bean
2、通过让Bean实现InitializingBean(定义初始化)和实现DisposableBean(定义销毁方法)
测试:
3、使用JSR250规范中@PostConstruct和@PreDestroy
@PostConstruct(标注在方法上):在bean创建完成并且实属性赋值完成,来执行初始化方法。
@PreDestroy(标注在方法上):在容器销毁Bean之前通知我们进行清理工作。
和第一种方式差不多,只是这两个注解是直接标注在方法上的。
4、BeanPostProcessor(是个接口)后置处理器
在Bean的初始化前后做些处理工作。
此接口有连个方法:postProcessBeforeInitialization():在初始化之前工作
和
postProcessAfterInitialization():在初始化之后工作
写个实现类来实现这两个方法
测试: