vps网站搬家,在线音乐播放网站模板,专门做动漫的网站有哪些,网络推广与传统推广的区别什么是BeanPostProcessor 是spring IOC容器给我们提供的一个扩展接口在调用初始化方法前后对bean进行额外加工#xff0c;ApplicationContext会自动扫描实现了BeanPostProcessor的bean#xff0c;并注册这些bean为后置处理器是bean的统一前置后置处理而不是基于某一个bean 执… 什么是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.context.annotation.Configuration;Configuration
public class CustomBeanPostProcessor implements BeanPostProcessor {Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println(CustomBeanPostProcessor--before beanName);return BeanPostProcessor.super.postProcessBeforeInitialization(bean, beanName);}Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println(CustomBeanPostProcessor--after beanName);return BeanPostProcessor.super.postProcessAfterInitialization(bean, beanName);}
}可以注册多个BeanPostProcessor顺序 在spring机制中可以指定后置处理器调用顺序通过BeanPostProcessor接口实现Ordered接口中的getOrder()方法该方法返回整数默认值为0优先级最高值越大优先级越低