SpringBoot创建监听器的方法示例
作者:青灯文案1
监听器的作用
- 解耦:通过监听器,可以将
事件发送者
和事件处理者
解耦,使得两者之间的依赖关系降低。 - 事件驱动:监听器允许程序以
事件驱动
的方式运行,即当特定事件发生时,自动触发相应的处理逻辑。 - 跨组件通信:在不同组件或模块之间,可以通过监听器实现通信和协作。
在Spring Boot中,可以通过实现 Spring 提供的监听器接口或注解来创建监听器。Spring提供了多种类型的监听器,包括 ApplicationListener 用于监听应用事件, @EventListener 注解用于监听特定事件等。
ApplicationEvent 是Spring框架中的一个核心类,用于在应用程序中 发布和监听事件 。它是所有Spring事件的 基类 ,一个抽象类,可以被继承来创建自定义的事件。事件可以在应用程序中的不同组件之间进行传递和通信。
ApplicationEvent 携带一个 Object 对象,可以被发布,事件监听者监听到这个事件后,会触发自定义逻辑(操作Object对象)。是实现事件驱动编程的重要机制,通过事件和监听器的协作,可以实现不同组件之间的解耦和高效通信。
实现 ApplicationListener 监听事件
1、创建 CustomEvent
事件类
import org.springframework.context.ApplicationEvent; public class CustomEvent extends ApplicationEvent { // CustomEvent需要继承自ApplicationEvent private String message; public CustomEvent(Object source, String message) { super(source); this.message = message; } public String getMessage() { return message; } }
2、自定义监听器,监听事件类
import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; @Component public class CustomEventListener implements ApplicationListener<CustomEvent> { @Override public void onApplicationEvent(CustomEvent event) { // 当CustomEvent事件被发布时,这个方法会被调用 System.out.println("监听事件成功 - " + event.getMessage()); // 在这里编写处理事件的逻辑 // 比如对消息进行合规处理 } }
3、触发监听事件
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; @Component public class EventPublisher { private final ApplicationContext applicationContext; @Autowired public EventPublisher(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } public void publishCustomEvent(String message) { // 发布CustomEvent CustomEvent customEvent = new CustomEvent(this, message); applicationContext.publishEvent(customEvent); } }
当 publishCustomEvent 方法被调用并发布 CustomEvent 时,所有实现了 ApplicationListener<CustomEvent> 的监听器都会收到通知,并执行onApplicationEvent方法。
使用 @EventListener 注解监听事件
如果你想要使用注解来创建监听器,可以使用@EventListener注解:
import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; @Component public class AnnotationBasedEventListener { @EventListener public void handleCustomEvent(CustomEvent event) { // 当CustomEvent事件被发布时,这个方法会被调用 System.out.println("监听事件成功 - " + event.getMessage()); // 在这里编写处理事件的逻辑 // 比如对消息进行合规处理 } }
使用 @EventListener
注解可以简化监听器的创建过程,并且可以在 方法级别上
指定需要监听的事件类型。
无论是通过实现接口还是使用注解,Spring Boot都提供了以实现事件驱动的应用程序逻辑。
到此这篇关于SpringBoot创建监听器的方法示例的文章就介绍到这了,更多相关SpringBoot创建监听器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!