如何实现Event事件传递中的解耦机制?

2026-05-17 04:241阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计493个文字,预计阅读时间需要2分钟。

如何实现Event事件传递中的解耦机制?

在Spring中,实现事件传递和解耦,创建Bean后,希望在完成对某个Bean的操作后,将操作结果同步传递给另一个Bean。首先创建一个消息负载的Bean,该Bean需要继承自ApplicationEvent类。例如:

javapublic class MyEvent extends ApplicationEvent {

private String message;

public MyEvent(Object source, String message) { super(source); this.message=message; }

public String getMessage() { return message; }}

如何实现Event事件传递中的解耦机制?

Event事件传递 解耦

spring中创建bean后,我们在完成对一个bean的操作后,我们希望把运行后的bean结果同步传递给另一个bean。

首先创建一个消息的载体,这个bean需要继承ApplicationEvent类。

1 自定义事件对象

我们也可以在这个事件中定义需要传递的信息

下面我就简单传递一下 演示基本功能

注意哦 生成对应的get set方法

/** * 用户注册的事件 * @author : look-word * @date : 2022-04-04 20:52 **/ public class UserRegisteredEvent extends ApplicationEvent { private String name; public UserRegisteredEvent(Object source,String name) { super(source); this.name=name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2 创建事件发布类

执行成功后 发送事件 并携带载体信息

/** * 注册用户 * @author : look-word * @date : 2022-04-04 20:48 **/ @Component public class Component1 { /** * 发布事件的对象 */ @Autowired private ApplicationContext context; public void register(){ System.out.println("注册成功"); // 注册成功 返回的数据 String name="张三"; // 发送事件 context.publishEvent(new UserRegisteredEvent(this,name)); } } 3 创建事件接收类

用于监听并接收消息载体传递的信息

这个类可以继承ApplicationListener类

也可以添加事件监听的注解 @EventListener

/** * 发送短信 * @author : look-word * @date : 2022-04-04 20:48 **/ @Component public class Component2 { @EventListener public void aaa(UserRegisteredEvent event){ String name = event.getName(); System.out.println("短信成功发送给"+name); System.out.println(event); } } 测试

@SpringBootApplication public class A01Application { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { ConfigurableApplicationContext context = SpringApplication.run(A01Application.class, args); // 发送事件 context.getBean(Component1.class).register(); }

本文共计493个文字,预计阅读时间需要2分钟。

如何实现Event事件传递中的解耦机制?

在Spring中,实现事件传递和解耦,创建Bean后,希望在完成对某个Bean的操作后,将操作结果同步传递给另一个Bean。首先创建一个消息负载的Bean,该Bean需要继承自ApplicationEvent类。例如:

javapublic class MyEvent extends ApplicationEvent {

private String message;

public MyEvent(Object source, String message) { super(source); this.message=message; }

public String getMessage() { return message; }}

如何实现Event事件传递中的解耦机制?

Event事件传递 解耦

spring中创建bean后,我们在完成对一个bean的操作后,我们希望把运行后的bean结果同步传递给另一个bean。

首先创建一个消息的载体,这个bean需要继承ApplicationEvent类。

1 自定义事件对象

我们也可以在这个事件中定义需要传递的信息

下面我就简单传递一下 演示基本功能

注意哦 生成对应的get set方法

/** * 用户注册的事件 * @author : look-word * @date : 2022-04-04 20:52 **/ public class UserRegisteredEvent extends ApplicationEvent { private String name; public UserRegisteredEvent(Object source,String name) { super(source); this.name=name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2 创建事件发布类

执行成功后 发送事件 并携带载体信息

/** * 注册用户 * @author : look-word * @date : 2022-04-04 20:48 **/ @Component public class Component1 { /** * 发布事件的对象 */ @Autowired private ApplicationContext context; public void register(){ System.out.println("注册成功"); // 注册成功 返回的数据 String name="张三"; // 发送事件 context.publishEvent(new UserRegisteredEvent(this,name)); } } 3 创建事件接收类

用于监听并接收消息载体传递的信息

这个类可以继承ApplicationListener类

也可以添加事件监听的注解 @EventListener

/** * 发送短信 * @author : look-word * @date : 2022-04-04 20:48 **/ @Component public class Component2 { @EventListener public void aaa(UserRegisteredEvent event){ String name = event.getName(); System.out.println("短信成功发送给"+name); System.out.println(event); } } 测试

@SpringBootApplication public class A01Application { public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { ConfigurableApplicationContext context = SpringApplication.run(A01Application.class, args); // 发送事件 context.getBean(Component1.class).register(); }