ApplcationEvent以及Listtener 是Spring 为我们提供的一个事件监听、订阅的实现,内部实现的原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高系统可扩展性以及可维护性。在一些与业务无关的、通用的操作方法,我们可以把它设计成事件监听器,事件发布者不需要考虑谁去监听、监听的具体内容是什么,发布者的工作只是为了发布事件而已。
在这里只是简单的讲解如何使用ApplicationEvent以及使用Listen来完成业务逻辑的解耦,不涉及到复杂的数据交互,所有需要引入的依赖很少,项目Pom.xml配置文件如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
事件源
首先要创建一个事件,监听都是围绕着事件来进行的。事件的代码很简单:
事件触发
事件发布是由ApplicationContext对象管控的,在事件发布之前需要注入 ApplicationContext对象,然后通过 publishEvent 方法完成事件发布。
事件处理程序
现在需要使用@component注解来声明该监听需要被Spring 注入管理,在用户注册监听实现方法上添加 @EventListener 注解,当有userRegisterEvent事件发布时候,监听程序会自动调用,然后根据方法内配置的事件完成监听
转载于:https://my.oschina.net/u/1030471/blog/2962765
分享到:
相关推荐
在Spring Boot应用中,整合Listener主要是为了监听应用的生命周期事件,例如在应用启动或关闭时执行特定的操作。这里我们讨论两种整合Listener的方式。 ### 方式一:通过注解扫描完成Listener组件的注册 1. **创建...
- 在Spring Boot应用中,我们可以创建一个`@Component`,并使用`@EventListener`注解来监听特定事件,或者自定义一个`ApplicationListener`监听`ApplicationReadyEvent`,在应用启动后开始监听文件夹。 - 使用`@...
主要介绍了Springboot项目监听器失效问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Spring Boot使用Spring框架中的ApplicationEvent和ApplicationListener接口来实现事件发布和监听。首先,`ApplicationEvent`是所有自定义事件的基类,它继承了`java.util.EventObject`。当你创建一个新的事件时,...
通过以上内容,我们可以了解到SpringBoot的事件发布和订阅机制,包括ApplicationEvent的创建和发布、ApplicationListener的实现以及@EventListener的使用。这使得我们在开发过程中能够实现松耦合的事件驱动编程,...
然后,我们可以使用`@EventListener`注解来监听这些事件并处理相关逻辑。例如,监听`PersonSaveEvent`事件,发放优惠券: ```java @EventListener public void listenEvent(PersonSaveEvent<Integer> event) { ...
在SpringBoot应用程序中,应用事件监听器是通过实现ApplicationListener接口来实现的。ApplicationListener接口定义了一个onApplicationEvent方法,该方法将在应用程序中的事件发生时被调用。在实现Application...
本文详细地剖析了SpringBoot启动应用及回调监听的原理,通过代码示例展示了如何使用`ApplicationContextInitializer`和`ApplicationListener`来实现回调监听。hope本文能够帮助读者更好地理解和应用SpringBoot框架。
4. 通过 `@EventListener` 注解实现事件监听 异步事件监听 异步事件监听可以使用 `@Async` 注解实现。例如: ```java @Component public class TestListen { @EventListener @Async public void testListen...
而监听事件的方法则由`ApplicationListener`接口实现。下面我们将深入探讨如何在Spring Boot中实现多个监听方法以及相关的知识点。 1. **创建事件**:首先,我们需要定义一个自定义的事件类,继承自`...
定义事件监听器,实现ApplicationListener 使用容器发布事件 Spring高级话题 Spring Aware BeanNameAware BeanFactoryAware ApplicationContextAware MessageSourceAware ...
在这个例子中,我们创建了一个Change Stream,监听`mycollection`集合,并在有变更事件发生时处理它们。你可以根据实际需求,将变更事件的处理逻辑替换为业务代码。 ### 5. 整合Spring Boot 最后,我们需要在Spring...
在SpringBoot中,可以使用`@EventListener`注解在一个方法上,当该事件被发布时,该方法将被调用。例如: ```java @Component public class EventPublisher { @Autowired private EventBus eventBus; public...
监听这些事件可以通过两种方式:使用@EventListener注解或实现ApplicationListener接口。 使用@EventListener注解可以在类的方法上添加注解,例如: ```java @EventListener public void onApplicationStarted...
这里我们将使用Spring Data Redis的`ExpirationPolicy`接口来设置Key的过期时间,并通过`@EventListener`注解监听`ApplicationEvent`来触发过期事件处理: ```java @Service public class RedisService { @...
使用@EventListener注解也可以轻松地实现事件监听器,Spring框架将自动扫描带有该注解的类,并将其添加到ApplicationContext中。在上面的代码中,使用@EventListener注解的MyEventHandler类将被Spring框架自动添加到...
在Spring中,我们可以使用`@EventListener`注解来声明一个方法作为事件的监听器。下面是一个简单的例子: ```java @Component public class SendEventListener { @EventListener public void start(String lins) ...
在本文中,我们将总结 SpringBoot 容器启动事件的相关知识点,并提供实例代码以供大家学习。 一、容器启动事件的分类 在 SpringBoot 中,容器启动事件可以分为两种:ApplicationStartingEvent 和 ...
在Spring中,事件(Event)是通过`ApplicationEvent`类表示的,而事件监听器(EventListener)则是通过实现`ApplicationListener`接口或者使用`@EventListener`注解的类方法来定义的。 在Spring框架中,`...
Spring提供了一种简单的方式,通过实现ApplicationListener接口或者使用@Component加上@EventListener注解来定义监听器: 1. 实现ApplicationListener接口: ```java @Component public class CustomEventListener...