返回

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用

发布时间:2022-12-05 20:52:28 234
# java# java# 容器# 数据


 Spring底层对BeanPostProcessor的使用

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_赋值

1,ApplicationContextAwareProcessor实现分析:

此类帮我们组建IOC容器,跟进ApplicationContextAwareProcessor我们发现, 这个后置处理器其实就是判断我们的bean有没有实现ApplicationContextAware 接口,并处理相应的逻辑,其实所有的后置处理器原理均如此.

那么怎么组建呢? 只需要实现 ApplicationContextAware 接口

步骤:

    1>, 新建Plane.java(将Jeep.java复制一份即可)

         class Plane implements ApplicationContextAware

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_赋值_02

分析一下ApplicationContextAwareProcessor类的方法

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_初始化_03

a,在创建Plane对象,还没初始化之前, 先判断是不是实现了ApplicationContextAware接口,

如果是的话就调用invokeAwareInterfaces方法, 并给里面注入值;

b,进入invokeAwareInterfaces()方法,判断是哪个aware, 如果是ApplicationContextAware, 就将当前的bean转成ApplicationContextAware类型, 调用setApplicationContext(), 把IOC容器注入到Plane里去;

c,用debug调用; 测试用例打断点测试

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_赋值_04

d,也可看debug调用栈来分析;

: debug可以打在ApplicationContextAwareProcessor处理器类的applyBeanPostProcessorsBeforeInitialization()方法里, 方便调试, 当bean为Plane类型时,F5跟进看, 最终在 InvokeAwareInterfaces()方法里返回我们的IOC容器applicationContext.

2,BeanValidationPostProcess分析:数据校验,

   看BeanPostProcessor接口实现CTRL+T

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_初始化_05

了解即可,处理器的原理和其它处理器一致.

当对象创建完,给bean赋值后,在WEB用得特别多;把页面提交的值进行校验

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_初始化_06

3,InitDestroyAnnotationBeanPostProcessor

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_赋值_07

此处理器用来处理@PostConstruct, @PreDestroy, 怎么知道这两注解是前后开始调用的呢, 就是 InitDestroyAnnotationBeanPostProcessor这个处理的

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_初始化_08

以@PostConstruct为例, 为什么声明这个注解后就能找到初始化init方法呢?

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_初始化_09

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_赋值_10

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_java_11

           

Spring源码分析(八) - Spring底层对BeanPostProcessor的使用_初始化_12

总结: Spring底层对BeanPostProcessor的使用, 包括bean的赋值, 注入其它组件, 生命周期注解功能,@Async, 等等

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线