Spring监听的另一种写法

Spring监听的另一种写法_第1张图片

@EventListener在哪里解析的?

org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons

Spring监听的另一种写法_第2张图片

 

 

 org.springframework.context.event.EventListenerMethodProcessor#processBean

Spring监听的另一种写法_第3张图片

遍历所有bean里面的所有加了@EventListener注解的方法

找到后开始遍历,这里也是个适配器模式

Spring监听的另一种写法_第4张图片 

Spring监听的另一种写法_第5张图片 

在spring容器手动加了一个ApplicationListenerMethodAdapter,供后续使用

执行目标方法的时候,这个监听器这正是我们注册的那个适配器 

Spring监听的另一种写法_第6张图片

最后反射进到监听的目标方法中

 

你可能感兴趣的:(spring)