Spring事件Application Event原理详解

 更新时间:2020年02月17日 14:14:02   作者:21Java  
这篇文章主要介绍了Spring 事件Application Event原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了Spring 事件Application Event原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Spring 的事件(Application Event)为 Bean 与 Bean 之间的消息通信提供了支持。当一个 Bean 处理完一个任务之后,希望另一个 Bean 知道并能做相应的处理,这时我们就需要让另一个 Bean 监听当前 Bean 所发送的事件。(观察者模式)
Spring 的事件需要遵循以下流程:

自定义事件,集成 ApplicationEvent。

定义事件监听器,实现 ApplicationListener。

使用容器发布事件。

以下代码基于 Spring Boot 实现

自定义事件

public class DemoEvent extends ApplicationEvent {

 private static final long serialVersionUID = 1L;
 private String msg;

 public DemoEvnet(Object source, String msg) {
  super(source);
  this.msg = msg;
 }

 public String getMsg() {
  return msg;
 }

 public void setMsg(String msg) {
  this.msg = msg;
 }
}

事件监听者

@Component
public class DemoListener implements ApplicationListener<DemoEvent> {

 public void onApplicationEvent(DemoEvent event) {
  String msg = event.getMsg();
  System.out.println("接收到了消息:" + msg);
 }
}

代码解释:

实现 ApplicaionListener 接口,并制定监听的时间类型。

使用 onApplicationEvent 方法对消息进行接收处理。

事件发布者

@Component
public class DemoPublisher {
 @Autowired
 ApplicationContext applicationContext;

 public void publish(String msg) {
  applicaionContext.publishEvent(new DemoEvent(this, msg));
 }
}

代码解释:

注入 ApplicaionContext 用来发布事件。

使用 ApplicaionContext 的 publishEvent 方法来发布。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解Flutter TabLayout 布局用法

    详解Flutter TabLayout 布局用法

    Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。这篇文章主要介绍了Flutter TabLayout 布局用法,需要的朋友可以参考下
    2019-07-07
  • 总结Java的Struts框架的异常处理方法

    总结Java的Struts框架的异常处理方法

    这篇文章主要介绍了Java的Struts框架的异常处理方法,Struts是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • java list常用方法总结

    java list常用方法总结

    这篇文章主要介绍了java list常用方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 手把手带你了解Java-Stream流方法学习及总结

    手把手带你了解Java-Stream流方法学习及总结

    这篇文章主要介绍了通过实例了解JavaStream流的方法学习和总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • Spring Boot统一处理全局异常的实战教程

    Spring Boot统一处理全局异常的实战教程

    最近在做项目时需要对异常进行全局统一处理,所以下面这篇文章主要给大家介绍了关于Spring Boot统一处理全局异常的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • Java Chassis3应用视角的配置管理技术解密

    Java Chassis3应用视角的配置管理技术解密

    这篇文章主要为大家介绍了Java Chassis3应用视角的配置管理相关的机制和背后故事,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Hibernate实现many-to-many的映射关系

    Hibernate实现many-to-many的映射关系

    今天小编就为大家分享一篇关于Hibernate实现many-to-many的映射关系,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 详解Spring MVC如何测试Controller(使用springmvc mock测试)

    详解Spring MVC如何测试Controller(使用springmvc mock测试)

    这篇文章主要介绍了详解Spring MVC如何测试Controller(使用springmvc mock测试),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 详解Java运算中的取余

    详解Java运算中的取余

    这篇文章主要介绍了java运算中的取余,在java运算中,取余符号是 %,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 详解MyBatis多数据源配置(读写分离)

    详解MyBatis多数据源配置(读写分离)

    这篇文章主要介绍了详解MyBatis多数据源配置(读写分离),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论