20220831-Spring事件机制
Spring事件机制-java4ye
先看下内容概览:

熟悉观察者模式的小伙伴应该一眼就知道了,其实就是简单版的发布-订阅模式
Spirng的事件机制有三大核心:
1,事件ApplicationEvent
2,事件发布器ApplicationEventPublisher
3,事件监听器ApplicationListener
用途:
事件发布器发布事件,事件监听器对监听的事件做出响应的反应
为啥要用?
因为一般情况下需求不确定
比如:今天领导要求发邮件,明天领导要求站内信。后来老板说先看看那种效果好,再决定。这就是一个事件机制
优点:
1,解耦,可以简化业务代码和发邮件,站内信,短信等进行分离
2,异步通知不用等待这些事件完成
3,提高扩展性,后边在扩展其他的操作也方便
提醒:
体量小的系统还是可以用,大的项目一般就用消息中间件,rabbitMq,kafuka等------------在项目中一般用的就是消息中间件
看下项目实例:

功能:根据返回事件去发送邮件还是短信。
代码:
1,小伙伴的反馈事件
@Getter public class ReaderFeedbackEvent extends ApplicationEvent{ private ReaderFeedbackDTO feedbackDTO; public ReaderFeedbackEvent(Object source, ReadbackDTO feedbackDTO) { super(soure); this.feedbackDTO = feedbackDTO; } }
特点和作用
继承ApplicationEvent,保存反馈信息的DTO
二,事件发布器ReaderFeedbackEventPublisher
@component @Slf4j public class ReaderFeedbackEventPublisher implements AppliationEventPublisherAware{ private ApplicationEventPublisher applicationEventPublisher ; @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher ){ this.applicationEventPublishe = applicationEventPublisher; } public void publishFeedbackEvent( ReaderFeedbackDTO readerFeedbackDto){ log.info("发布反馈事件开始") applicationEventPublisher.pulblishEvent(new ReaderFeedbackEvent(this, readerFeedbackDto)) log.info("发布反馈事件完成") } }
特点和作用:
实现ApplicationEventPublisherAware这个接口,获取ApplicationEventPublisher事件发布器发布事件
三,监听ReaderFeedbackEvent事件发送邮件

特点和作用:
实现ApplicationListener这个接口,获取时间中的反馈信息,并发送邮件
四,当反馈信息有赞时发送短信

特点作用:
这里用的监听器的注解写法,非常的方便。只有点赞后才可以发短信



浙公网安备 33010602011771号