java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot创建监听器

SpringBoot创建监听器的方法示例

作者:青灯文案1

在Java中,监听器(Listener)是一种设计模式,它允许对象在 特定事件 发生时 自动执行某些操作,这种设计模式通常用于实现 发布-订阅模型,本文给大家介绍了SpringBoot创建监听器的方法示例,感兴趣的通过可以参考一下

监听器的作用

在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创建监听器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文