首页 > 其他 > 详细

beanPostProcessor处理流程理解。

时间:2020-04-16 10:59:56      阅读:69      评论:0      收藏:0      [点我收藏+]

测试前准备:

  1. 使用 springboot web 构建项目,并在service中加上 @Async (要使用@EnableAsync开启异步处理) 和@Validated 这里这个service 初始化时就必须要经过这两个对应的beanPostProcessor 
  2. 在abstractAdvisingBeanPostProcessor中的  postProcessAfterInitalization中加上断点,并配置断点的condition 为 beanName.contains("testServiceImpl") 其中testServiceImpl为我们加上@Async和@Validated的service 名称
  3. 启动项目跟着流程走即可。

重点类讲解:

  1. 生成service的代理类时会指定一个接口列表,我们通常只指定一个。注意:在这里我们的service 至少设置了一个即为 接口 Advised

 技术分享图片

 

  1. 判断当前对象是否生成代理类,如果已生成代理类(肯定已经代理了Advised 接口),就会把当前类的切面类增加到代理类的切面列表里面。
  2. 如果没有,则生成代理类。

技术分享图片

 

beanPostProcessor处理流程理解。

原文:https://www.cnblogs.com/z-test/p/12710996.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!