一.快问快答标签:core,方式,实现,Spring,EventListener,接口,springframework,监听器 From: https://www.cnblogs.com/qiulong/p/16908599.html
1.为什么需要使用时间这种模式?
上面将注册的主要逻辑(用户信息落库)和次要的业务逻辑(发送邮件)通过事件的方式解耦了。
次要的业务做成了可插拔的方式,比如不想发送邮件了,只需要将邮件监听器上面的@Component注释就可以了,非常方便扩展。
2.spring中实现事件
1.面相接口的方式(ApplicationEvent)
2.面相@EventListener注解的方式
3.spring排序:
方式1:实现org.springframework.core.Ordered接口:Ordered:需要实现一个getOrder方法,返回顺序值,值越小,顺序越高
方式2:实现org.springframework.core.PriorityOrdered接口:PriorityOrdered接口继承了方式一种的Ordered接口,所以如果你实现PriorityOrdered接口,也需要实现getOrder方法。
方式3:类上使用@org.springframework.core.annotation.Order注解
4.监听器异步模式:
监听器最终是通过ApplicationEventMulticaster内部的实现来调用的,所以我们关注的重点就是这个类,这个类默认有个实现类SimpleApplicationEventMulticaster,这个类是支持监听器异步调用的。
SimpleApplicationEventMulticaster中的taskExecutor