10、spring注解学习(bean的生命周期)——BeanPostProcessor【接口】:bean的后置处理器

本文内容纲要:10、spring注解学习(bean的生命周期)——BeanPostProcessor【接口】:bean的后置处理器

1、创建Bird类并注入容器中

@Component

public 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

回到顶部