图片起源:深刻分析Spring(三)——Bean的生命周期
这张图里一个表明了bean的生命周期,另外一个也阐明了BeanPostProcessor在设置了bean的属性后的前置解决与后置解决。
这个是BeanPostProcessor的定义:
/** * Factory hook that allows for custom modification of new bean instances — * for example, checking for marker interfaces or wrapping beans with proxies. * * <p>Typically, post-processors that populate beans via marker interfaces * or the like will implement {@link #postProcessBeforeInitialization}, * while post-processors that wrap beans with proxies will normally * implement {@link #postProcessAfterInitialization}. * */public interface BeanPostProcessor { @Nullable default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Nullable default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { return bean; }}
这个是BeanPostProcessor所有子类,当前再来剖析下。