新增新事件只需要实现Spring提供的ApplicationEvent 的接口
同理新增监听器只需要实现ApplicationListener接口
运行Spring发布事件
Spring容器启动的时候在不同阶段会发布不同事件,我们可以根据自己的需求进行监听。(阿里的nacos服务自动注册原理就是监听到web容器初始化完成事件,完成自动注册发现)。
Spring容器启动完之后,会发布一个ContextRefreshedEvent事件,我们可以实现自己的监听器进行监听。
运行结果
运行结果
有些时候我们事件传递的对象是一些简单的对象,比如一个字符串,不想继承ApplicationEvent对象,可以使用PayloadApplicationEvent
运行结果
Spring监听器的基本使用到这里的结束了,后面会仿照Spring,手写一个监听器框架,带大家理解Spring的监听器的原理
1、通过app.addListeners注册进入
2、初始化一个SpringApplicationRunListeners进行处理
3、从spring.factories中读取监听器处理类EventPublishingRunListener
4、通过createSpringFactoriesInstances创建监听器处理类实例
5、调用监听器listeners.starting()的方法来启动
6、底层把事件处理交给线程池去处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)