10、spring注解学习(bean的生命周期)——BeanPostProcessor【接口】:bean的后置处理器
本文内容纲要:10、spring注解学习(bean的生命周期)——BeanPostProcessor【接口】:bean的后置处理器
1、创建Bird类并注入容器中
@Componentpublic class Bird {
public Bird() {
System.out.println("Bird的构造方法执行了");
}
//对象构造并属性赋值后执行
@PostConstruct
public void PostConstruct() {
System.out.println("Bird的PostConstruct方法执行了");
}
@PreDestroy
public void destroy() {
System.out.println("Bird的销毁方法执行了");
}
}
2、创建自定义bean的后置处理器并注入容器中
/* * 后置处理器,初始化前后进行处理
*/
@Component
public class MyBeanPostProcessor implements BeanPostProcessor {
/*
* 参数1为容器刚创建的bean,beanName为bean的名字
*/
//初始化前所需要做的处理
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessAfterInitialization..."+beanName+"=>"+bean);
//返回的对象可以是原来初始化的bean,也可以是包装之后的bean
return bean;
}
//初始化后所需要做的处理
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("postProcessBeforeInitialization..."+beanName+"=>"+bean);
return bean;
}
}
3、在spring配置类中配置扫描哪些包下的注解并注入容器
/** * 测试bean的生命周期的配置
*/
@Configuration
@ComponentScan(value="com.atguigu")
public class MainConfigOfLifeCycle {
}
4、创建测试方法进行测试
/* * 测试自定义bean的后置处理器在bean初始化前后所做工作
*/
@Test
public void test04() {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfLifeCycle.class);
applicationContext.close();
}
执行结果:
得出结论:
** postProcessAfterInitialization方法:初始化前所需要做的处理**
** postProcessBeforeInitialization方法:初始化后所需要做的处理**
本文内容总结:10、spring注解学习(bean的生命周期)——BeanPostProcessor【接口】:bean的后置处理器
原文链接:https://www.cnblogs.com/lyh233/p/12441634.html
以上是 10、spring注解学习(bean的生命周期)——BeanPostProcessor【接口】:bean的后置处理器 的全部内容, 来源链接: utcz.com/z/362518.html