基本概念
BeanFactoryPostProcessor 是一个后置处理器,在Spring中,后置处理器大致可以分为两类:
- BeanFactoryPostProcessor
- BeanPostProcessor
前者主要是用来处理 BeanDefinition,即一个 Bean 的配置完全被加载了,已经生成了 BeanDefinition,但是还没有生成具体的 Bean,此时 BeanFactoryPostProcessor 会介入,介入之后可以对 BeanDefinition 进行处理;而 BeanPostProcessor 则是在一个具体的 Bean 生成之后,才会介入,对已经生成的 Bean 进行修改。
应用场景
BeanFactoryPostProcessor应用场景
应用场景1 ,修改xml 自定义标签节点属性
公司框架自定义xml标签有个autoDeploy=“true” 节点,通过spring 占位符配置autoDeploy=“{xxx}”,配置文件配置了属性无法读取到,或者通过pom profiles替换属性的方式是编译时直接把配置文件的属性写道各个xml文件了,但是我们是需要统一配置路口,使用pom profiles替换属性的方式反而不方便管理;

查看自定义xml标签applicationDomain,找到对应的class,发现最终autoDeploy属性是设置到AppContextHolder类的成员变量的;

使用BeanFactoryPostProcessor 后置处理器在BeanDefinition执行结束,还没有生成具体的Bean的时机修改
AppContextHolder.autoDeploy的值
新建MyBeanFactoryPostProcessor.java
(需要在直接扫码器的包下)
package com.bsoft.cytj.base.config;
import ctd.util.AppContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans
Java Spring中BeanFactory与BeanPostProcessor应用

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



