Skip to main content

后处理器

David LiuLess than 1 minute

后处理器

Spring 的后处理器是 Spring 对外开发的重要扩展点,允许我们介入到 Bean 的整个实例化流程中来,以达到动态注册 BeanDefinition,动态修改 BeanDefinition,以及动态修改 Bean 的作用。Spring 主要有两种后处理器:

  • BeanFactoryPostProcessor:Bean 工厂后处理器,在 BeanDefinitionMap 填充完毕,Bean 实例化之前执行:
  • BeanPostProcessor:Bean 后处理器,一般在 Bean 实例化之后,填充到单例池 singletonObjects 之前执行。

需要实现对应接口,注册到 Spring 容器中以后就会自动调用。

  • 动态注册

    需要强转

  • 动态修改

截屏2023-04-05 21.10.52

BeanFactoryPostProcessor

可以实现注解扫描

BeanPostProcessor

可以实现 AOP,动态代理、方法增强

  • bean 初始化前:before
  • bean 初始化后:after

很多 Spring 自己和第三方整合框架都是用这两个去做的。