spring事件

spring的事件为bean与bean之间的通信提供了支持,当一个bean处理完一个任务后,希望另一个bean知道并做相应的处理,这时,我们就需要让另一个bean监听当前bean所发送的事件

  步骤:

    1:自定义事件,继承ApplicationEvent 实现方法

    2:定义事件监听器,实现ApplicationListener 实现方法

    3:使用容器发布类,比如:ApplicationContext的publishEvent方法

代码如下:

  自定义事件

public class DemoEvent extends ApplicationEvent{
private String msg;
public DemoEvent(Object source) {
super(source);
}
public DemoEvent(Object source, String msg) {
super(source);
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}

自定义事件监听器

@Component
public class DemoEventListener implements ApplicationListener<DemoEvent>{

public void onApplicationEvent(DemoEvent demoEvent) {
String msg=demoEvent.getMsg();
System.out.println("自定义事件bean被创建了:"+msg);
}
}

使用容器发布事件

@Component
public class DemoEventPublish {
@Autowired
private ApplicationContext context;
public void publish(String msg){
this.context.publishEvent(new DemoEvent(this, msg));
}
}

@Configuration
@ComponentScan
public class DemoEventConfig {

}

public class DemoEventMain {
public static void main(String[] args) {
AnnotationConfigApplicationContext context=
new AnnotationConfigApplicationContext(DemoEventConfig.class);
DemoEventPublish bean = context.getBean(DemoEventPublish.class);
bean.publish("hello applicationContext Event");
}
}

运行结果:

  自定义事件bean被创建了:hello applicationContext Event

时间: 2024-10-07 19:12:05

spring事件的相关文章

spring 事件(Application Event)

spring 事件为bean 与 bean之间传递消息.一个bean处理完了希望其余一个接着处理.这时我们就需要其余的一个bean监听当前bean所发送的事件. spring事件使用步骤如下: 1.先自定义事件:你的事件需要继承 ApplicationEvent 2.定义事件监听器: 需要实现 ApplicationListener 3.使用容器对事件进行发布 以下例子是场景是注册的时候发送邮件的一个场景: 先定义事件: package com.foreveross.service.weixin

spring 事件模式 源码导读

一,jdk 事件对象基类 package java.util; import java.io.Serializable; public class EventObject implements Serializable { protected transient Object source; public Object getSource() { return this.source; } public EventObject(Object paramObject) { if (paramObj

Spring 使用介绍(十一)—— Spring事件

一.简介 spring事件是观察者设计模式的实现,主要有三个元素: 事件 spring事件由ApplicationEvent定义 发布者 由ApplicationEventPublisher定义,而ApplicationContext继承自ApplicationEventPublisher 监听者 由ApplicationListener定义 简单示例: 自定义事件 public class TestEvent extends ApplicationEvent { private String

spring事件监听机制

事件机制的主要成员: 事件 事件监听器(监听事件触发,处理一些事情) 事件源(发布事件) javaSE 提供了一系列自定义事件的标准. EvenObject,为javaSE提供的事件类型基类,任何自定义事件都必须继承它. EventListener,为javaSE提供的事件监听器基类,任何自定义事件监听器都得实现. javaSE未提供事件发布者,由各个应用程序自行实现事件发布者这一角色. spring提供了ApplicationEventPublisher接口作为事件发布者,并且Applicat

Spring 事件(1)- 内置事件

Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – IOC) 理解依赖注入(DI – Dependency Injection) Bean XML 配置(1)- 通过XML配置加载Bean Bean XML 配置(2)- Bean作用域与生命周期回调方法配置 Bean XML 配置(3)- 依赖注入配置 Bean XML 配置(

Spring 事件(2)- 自定义事件

Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – IOC) 理解依赖注入(DI – Dependency Injection) Bean XML 配置(1)- 通过XML配置加载Bean Bean XML 配置(2)- Bean作用域与生命周期回调方法配置 Bean XML 配置(3)- 依赖注入配置 Bean XML 配置(

Spring 事件监听

Spring 的核心是 ApplicationContext,它负责管理 Bean的完整生命周期:当加载 Bean 时,ApplicationContext 发布某些类型的事件:例如,当上下文启动时,ContextStartedEvent 发布消息,当上下文停止时,ContextStoppedEvent 发布消息: 通过 ApplicationEvent 类和 ApplicationListener 接口来提供在 ApplicationContext 中处理事件:如果一个 Bean 实现 App

spring事件通知机制详解

优势 解耦 对同一种事件有多种处理方式 不干扰主线(main line) 起源 要讲spring的事件通知机制,就要先了解一下spring中的这些接口和抽象类: ApplicationEventPublisherAware        接口:用来 publish event ApplicationEvent                  抽象类,记录了source和初始化时间戳:用来定义Event ApplicationListener<E extends ApplicationEvent

Spring 事件机制

通过模拟邮件的发送,说明Spring的事件监听机制 事件类 1 package org.zln.module_chapter2.event; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.event.ApplicationContextEvent; 5 6 /** 7 * 发送邮件事件类 8 * Created by sherry on 000005/