- 事件流程:
- 自定义事件,一般继承ApplicationEvent抽象类
- 定义事件监听器,一般实现ApplicationListener接口,注册监听器到spring容器中context.addListeners(listerner)
- 发布事件 context.publishEvent(event);
- 监听器注册方式
- Context.addListerners(listerner)
- @compent注解在监听器类上,纳入spring容器管理
- 通过配置文件配置项,context.listener.classes=监听器全类名
-
- 定义一个纳入spring容器管理的类,接口的参数必须和监听器的参数保持一致,在接口上添加注解@EventListener;接口的参数必须存在,类型任意,如果指定具体事件类型,则只监听指定事件的监听(推荐使用),需要创监听器的实现类,由注解@EventListener创建完成
- 深入了解c和d实现方式
- DelegatingApplicationListener中存在配置属性context. .classes,加载生成
- D的实现EventListenerPocessor接口,内部实现也是添加EventListener到context
- springBoot内部定义好的event
- spring.boot.event下的事件类