Springboot 自带事件都有什么

什么是事件驱动?

事件驱动是一种编程范式,它的核心思想是将程序的执行流程与事件进行解耦。在这种范式中,程序在启动后并不会立即开始执行,而是等待事件的发生。当事件发生时,程序会执行相应的处理逻辑。这种编程范式使得程序更加灵活,能够更好地适应不断变化的需求。

在 Spring 应用程序中,事件驱动编程通常通过实现 ApplicationListener 接口来实现。当某个事件发生时,Spring 容器会自动通知所有实现了 ApplicationListener 接口的 bean,并调用它们的 onApplicationEvent 方法。

springboot 事件

SpringBoot 事件是一种发布-订阅机制,允许你在 Spring 应用程序中发布和接收事件。事件是应用程序中发生的重要状态变化,如用户登录、订单创建等。通过 SpringBoot 事件,你可以在应用程序的不同部分之间传递和处理这些事件。

以下是 SpringBoot 事件的基本使用方法:

1.定义事件:创建一个表示事件的 Java 类,并使用 org.springframework.context.ApplicationEvent 作为父类。例如:

08dc09c458a837b194156ba606c5cd5b.jpeg


2.定义事件监听器:创建一个 Java 类,实现 org.springframework.context.ApplicationListener 接口,并在 onApplicationEvent() 方法中处理事件。例如:

8a7504d8cd42c611725f851cd91adcf1.jpeg


3.发布事件:在你需要发布事件的地方,使用 ApplicationEventPublisher 发布事件。例如:

183ee3e43a80f01a9a960c54bf75c722.jpeg


通过以上步骤,你可以在 SpringBoot 应用程序中实现事件驱动架构。事件发布者只需要关注发布事件,事件监听器会自动接收到事件并处理。这样可以让你的应用程序更松耦合、更易于维护和扩展。


ApplicationEvent 的原理

ApplicationEvent 是 Spring 框架中的事件对象,用于在应用程序中传递事件。它是 java.util.EventObject 的一个子类,包含了事件源和事件类型的信息。在 Spring 应用程序中,当一个事件发生时,可以创建一个 ApplicationEvent 对象来封装这个事件,并将其发布到 Spring 容器中。

Spring 容器中有一个或多个 ApplicationListener,它们实现了 org.springframework.context.ApplicationListener 接口,用于监听和响应 ApplicationEvent。当 Spring 容器接收到一个 ApplicationEvent 时,它会通知所有的 ApplicationListener,这些监听器会执行相应的处理逻辑。


ApplicationListener 

ApplicationListener 是 Spring 框架中的一个接口,用于定义事件监听器。当一个 ApplicationEvent 被发布到 Spring 容器中时,所有实现了 ApplicationListener 接口的 bean 都会被通知,并执行相应的处理逻辑。

ApplicationListener 接口的定义如下:

60e2758b3d4c5fcd6a22593fb608c0d1.jpeg


onApplicationEvent 方法是 ApplicationListener 接口的唯一方法,它接受一个 ApplicationEvent 参数,用于处理事件。当事件发生时,Spring 容器会自动调用这个方法,并将事件作为参数传递进来。

在 Spring 应用程序中,你可以实现 ApplicationListener 接口来创建自己的事件监听器。例如,你可以创建一个监听 UserRegisteredEvent 的监听器:

830793c01ec962b7fd8992c8f15c58d6.jpeg

在上面的代码中,我们创建了一个名为 UserRegisteredListener 的类,它实现了 ApplicationListener 接口,并监听 UserRegisteredEvent 事件。当 Spring 容器接收到一个 UserRegisteredEvent 时,它会通知 UserRegisteredListener,后者会执行相应的处理逻辑。

通过实现 ApplicationListener 接口,你可以在 Spring 应用程序中创建自己的事件监听器,以处理各种应用程序事件。这使得你的应用程序更加松耦合,易于维护和扩展。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值