你对BeanPostProcessor的理解?

针对Bean对象初始化前后。针对Bean对象创建之后的处理操作。
SpringloC 核心流程
BeanDefinition--> 注册BeanDefinition -->BeanFactory --> BeanFactory的后置处理 --> 单例bean -->
AOP --》代理对象--> advice pointcut join point。
BeanPostProcessor 提供了一种扩展机制
自定义接口的实现 --》 注册到BeanFactory的 Map中
BeanDefinition->注册BeanDefinition->BeanFactory-> BeanFactory的后置处理->单例bean->
遍历上面的Map 执行相关的行为 -->
===) AOP
loC 和AOP的关系
有了loC 才有 AOP DI
 

BeanPostProcessor 是 Spring 框架提供的一个扩展接口,用于在 Spring 容器的 Bean 初始化前后执行一些自定义的逻辑操作,例如修改 Bean 属性值、动态代理、校验等等。它主要是在 Bean 的实例化、依赖注入、初始化等环节中介入,对 Bean 对象进行修改和处理。

在 Spring 框架启动时,容器会自动扫描实现了 BeanPostProcessor 接口的类,并将这些类注册到 BeanPostProcessor 链中,按照顺序依次执行。在 Bean 实例化完成后,Spring 容器会先执行 postProcessBeforeInitialization 方法,然后执行 postProcessAfterInitialization 方法。这两个方法的返回值是被处理过的 Bean 对象。

通常,我们可以利用 BeanPostProcessor 来完成一些常见的任务,如:

  • Bean 属性值的验证和校验
  • 注入一些运行时需要的依赖
  • 实现对 Bean 属性的注入、修改、重置
  • 实现对 Bean 的初始化前后进行某些操作,例如动态代理、AOP 等

需要注意的是,如果 BeanPostProcessor 的实现类本身依赖于 Spring 容器中的其他 Bean,那么需要保证其他 Bean 的依赖注入和初始化已经完成,否则会出现 NullPointer 等异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值