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这个接口,获取时间中的反馈信息,并发送邮件

四,当反馈信息有赞时发送短信

 

 特点作用:

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

 

 

 

 

 

 

posted @ 2022-08-31 17:10  爱吃猫的鱼9527  阅读(33)  评论(0)    收藏  举报