-
什么是BeanPostProcessor
- 是Spring IOC容器给我们提供的一个扩展接口
- 在调用初始化方法前后对bean进行额外加工,ApplicationContext会自动扫描实现了BeanPostProcessor的bean,并注册这些bean为后置处理器
- 是bean的统一前置后置处理而不是基于某一个bean
-
执行顺序
Spring IOC容器实例化bean 调用BeanPostProcessor的postProcessBeforeInitialization方法 调用bean实例的初始化方法 调用BeanPostProcessor的postProcessAfterInitialization方法
-
代码示例如下,注意:接口重写的两个方法不能返回null,如果返回null那么在后续初始化方法将报空指针异常或者通过getBean()方法获取不到bean实例对象
package com.gen; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.core.Ordered; import org.springframework.stereotype.Component; @Component public class CustomBeanPostProcessor implements BeanPostProcessor, Ordered { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("before---------------------" + beanName); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("after---------------------" + beanName); return bean; } @Override public int getOrder() { return 1; } }
-
可以注册多个BeanPostProcessor顺序
- 在Spring机制中可以指定后置处理器调用顺序,通过BeanPostProcessor接口实现Ordered接口getOrder方法,该方法返回整数,默认为0优先级最高,值越大优先级越低
相关文章
- 02-09(II)第九节:bean 的后置处理器
- 02-09Spring 前置和后置处理器
- 02-09Spring MVC学习:配置异常处理器
- 02-09spring学习笔记2---MVC处理器映射(handlerMapping)三种方式(附源码)
- 02-09后置处理器:正则表达式提取器
- 02-09jmeter后置处理器JSON Extractor基础使用
- 02-0911. Jmeter-后置处理器(二)-晒酷学院
- 02-09Jmeter后置处理器之JSON Extractor
- 02-09Jmeter--Beanshell后置处理器
- 02-09Spring中的BeanPostProcessor和BeanFactoryPostProcessor