`

spring中监听事件

阅读更多
  • spring里的事件为bean与bean间消息通信提供了支持,我们希望在一个bean处理完一个任务后,通知其他的bean做相应的事,此时就需要另外的Bean去监听当前bean所发生的事件
  • 定义spring的事件需做以下几件事:
  1. 自定义事件,继承ApplicationEvent
  2.  定义一个事件监听器,实现ApplicationListener
  3.  使用容器ApplicationContext来发布事件    

一.自定义事件

 

package com.zgw.event;

import org.springframework.context.ApplicationEvent;

public class EventDemo extends ApplicationEvent{

	private static final long serialVersionUID = 1L;
	private String msg;
	
	public EventDemo(Object source,String msg) {
		super(source);
		this.msg=msg;
		
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}

}

 

二.事件监听器

 

package com.zgw.event;

import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;

/**
 * 实现ApplicationListener接口,并指定事件类型EventDemo
 * @author zan
 *
 */
@Component
public class ListenerDemo implements ApplicationListener<EventDemo> {
  
	//此方法是对消息进行处理
	public void onApplicationEvent(EventDemo event) {
		
		String msg = event.getMsg();
		
		System.out.println("我(bean-listenerDemo)接受到了bean-publisherDemo发布的消息:" + msg);

	}

}

 三.事件发布类

 

package com.zgw.event;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

@Component
public class PublisherDemo {
	//注入ApplicationContext用来发布事件
	@Autowired
	ApplicationContext applicationContext; 
	
	public void publish(String msg){
		//调用publishEvent()来发布
		applicationContext.publishEvent(new EventDemo(this, msg));
	}

}

 

     四.配置类

 

package com.zgw.event;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.zgw.event")
public class EventConfig {

}

 五.测试类

package com.zgw.event;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestEvent {

	public static void main(String[] args) {
		 AnnotationConfigApplicationContext context =
	                new AnnotationConfigApplicationContext(EventConfig.class);
		 
		 PublisherDemo publisher = context.getBean(PublisherDemo.class);
		 
		 publisher.publish("Hello application event");
		 
		 context.close();
	}
}

 运行结果如下:



 

 

 

 

 

 

 

 



 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    spring 事件监听 3种方式

    在Spring框架中,事件监听是一种实现模块间解耦的有效手段,它允许我们在应用程序的不同部分之间传递消息,而无需直接依赖。本篇文章将详细介绍Spring事件监听的三种方式:基于接口的监听器、基于类的监听器以及基于...

    spring容器启动和关闭时事件监听

    spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听

    深入探索Spring事件监听机制:技术与应用

    首先,事件(ApplicationEvent)是Spring框架中事件的核心。Spring内置了一些预定义的事件类型,如ContextRefreshedEvent、ContextStartedEvent、ContextStoppedEvent和ContextClosedEvent,它们分别对应于Spring...

    spring的Applicationcontext对事件的监听,实现类似MQ的效果

    在Spring框架中,`ApplicationContext`不仅是一个容器,用于管理Bean的生命周期和依赖注入,它还提供了事件发布和监听的功能。这个特性使得Spring应用能够实现组件间的异步通信,类似于消息队列(MQ)的工作模式。...

    event.rar-Spring事件监听机制

    在Spring框架中,事件监听机制是一种非常重要的组件间通信方式,它允许应用程序的不同部分通过发布和订阅事件来进行异步通信。这种模式使得组件之间松耦合,提高了代码的可维护性和可扩展性。下面我们将详细探讨...

    Spring的事件监听机制示例详解

    在Spring中,事件发布者负责发布事件,而事件监听者则负责监听事件并执行相应的操作。 1. 观察者模式 Spring的事件监听机制是观察者模式的一种实现。观察者模式是一种常用的设计模式,它允许对象之间相互通信,而...

    spring的监听器和缓存.docx

    在Spring Boot中,监听器是用来响应特定事件的组件,例如Web应用程序的启动和关闭。`MyListener`类实现了`ServletContextListener`接口,这个接口有两个主要方法:`contextInitialized`和`contextDestroyed`。当Web...

    Spring的ApplicationEvent事件和监听器的测试Demo

    在Spring框架中,ApplicationEvent和监听器是实现应用内异步通信的重要机制。这个测试Demo主要展示了如何在Spring环境中创建自定义事件、发布事件以及注册和处理这些事件。以下是对这个测试工程的详细解析: 首先,...

    spring boot文件夹文件监听程序

    - 在Spring Boot应用中,我们可以创建一个`@Component`,并使用`@EventListener`注解来监听特定事件,或者自定义一个`ApplicationListener`监听`ApplicationReadyEvent`,在应用启动后开始监听文件夹。 - 使用`@...

    Spring boot通过HttpSessionListener监听器统计在线人数的实现代码

    在Spring boot中通过HttpSessionListener监听器统计在线人数是一种常见的技术实现方式,适用于需要跟踪和管理用户会话状态的Web应用程序。以下是从给定文件中提炼的关键知识点。 首先,了解HttpSessionListener接口...

    spring监听器共20页.pdf.zip

    Spring监听器是Spring框架中的一个重要组成部分,主要用于监听和响应应用上下文或Bean的生命周期事件。在Spring中,监听器是通过实现特定接口或者继承抽象类来定义的,这些接口包括ApplicationContextAware、...

    使用Spring事件机制实现异步的方法

    在使用Spring事件机制实现异步的方法时,通常需要将事件监听器添加到ApplicationContext中。在上面的代码中,使用@SpringBootApplication的addListeners方法将MyListener添加到ApplicationContext中。 使用@Event...

    Spring 集成 IBM MQ 监听配置

    Spring 集成 IBM MQ 监听配置,包括用户管理配置和一些基础配置信息

    Spring监听器及定时任务实现方法详解

    在本文中,我们将详细介绍Spring监听器及定时任务实现方法的详解。通过示例代码,我们将展示如何使用Spring监听器和定时任务来实现批处理任务的执行。 Spring监听器 在Spring框架中,监听器是指实现...

    spring 监听器浅析.docx

    首先,Spring监听器是基于事件驱动模型的,这种模式在多线程和分布式系统中非常常见。在Spring中,当一个特定的事件发生时,如bean的初始化或销毁,上下文的启动或关闭等,Spring会通过发布事件(publishEvent)来...

    Spring监听资料

    Spring监听器是实现特定接口的类,这些接口提供了对Spring容器生命周期事件的处理能力。本资料集合将深入探讨Spring监听器的概念、作用以及如何在实际开发中使用它们。 首先,我们要了解的是`ApplicationListener`...

    spring事件的例子

    在Spring框架中,事件处理是一种重要的组件间通信方式。它允许一个对象在完成特定操作后,通知其他对象这一事实,而无需这些对象之间有直接的依赖关系。这种机制基于Java的观察者模式(Observer Pattern),使得松...

Global site tag (gtag.js) - Google Analytics