ApplicationEventPublisher-Spring事件发布器

ApplicationEventPublisher-Spring事件发布器

码农世界 2024-05-31 后端 80 次浏览 0个评论

一、简介

ApplicationEventPublisher是简称为Spring中的事件发布器,应用于Java事件型驱动应用是解耦和设计,Spring对Java已有的事件处理模型,做了进一步的简化处理。

二、发布及处理事件

ApplicationEventPublisher是一个函数式编程的接口,里面有两个方法主要用来发布事件;后续消费事件即可通过@EventListener注解进行消费即可。

发布者会调用 ApplicationEventPublisher的publishEvent 方法对某一事件进行发布。随后Spring容器会把该事件告诉所有的监听者,监听者根据拿到的“信息、某些指令或者某些数据”去做一些业务上的操作。

2.1 发布事件

通过ApplicationEventPublisher 的publishEvent进行事件的发布

   @Autowired
   private ApplicationEventPublisher publisher;
   
   private void publishDTO(JSONObject data) {
        Cs001DTO dto= JSONObject.toJavaObject(data, Cs001DTO.class);
        //发布事件
        publisher.publishEvent(dto);
    }
2.2 提取工具类
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class EventUtil {
 
    /**
     * 应用事件发布
     */
    public static ApplicationEventPublisher publisher;
 
    @Autowired
    public void setPublisher(ApplicationEventPublisher publisher) {
        EventUtil.publisher = publisher;
    }
 
    /**
     * 同步推送
     *
     * @param event 触发事件
     */
    public static void pushSynEvent(Object event) {
        try {
            log.debug("同步发布事件 Class:{}", event.getClass().getName());
            publisher.publishEvent(event);
        } catch (Exception e) {
            log.error("同步发布事件错误!==> {}", JsonUtil.toJSONString(event), e);
        }
    }
}

三、总结

本篇简单介绍Spring的时间发布器ApplicationEventPublisher的使用。

转载请注明来自码农世界,本文标题:《ApplicationEventPublisher-Spring事件发布器》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,80人围观)参与讨论

还没有评论,来说两句吧...

Top