spring Event接收返回值示例代码
时间: 2023-10-28 20:03:45 浏览: 158
下面是一个Spring Event接收返回值的示例代码:
首先,定义一个事件类,继承自ApplicationEvent类:
```java
public class MyEvent extends ApplicationEvent {
private String message;
public MyEvent(Object source, String message) {
super(source);
this.message = message;
}
public String getMessage() {
return message;
}
}
```
然后,定义一个事件监听器类,实现ApplicationListener接口:
```java
@Component
public class MyEventListener implements ApplicationListener<MyEvent> {
@Override
public void onApplicationEvent(MyEvent event) {
System.out.println("Received message: " + event.getMessage());
event.setResult("Hello, World!");
}
}
```
在事件监听器类中,通过实现onApplicationEvent方法来处理事件,可以接收到事件对象并进行处理。在这个例子中,我们打印出事件消息,并设置事件的返回值为"Hello, World!"。
最后,在触发事件的地方,可以通过调用ApplicationEventPublisher的publishEvent方法来发布事件,并获取到事件的返回值:
```java
@Component
public class MyPublisher {
private final ApplicationEventPublisher publisher;
public MyPublisher(ApplicationEventPublisher publisher) {
this.publisher = publisher;
}
public String publish(String message) {
MyEvent event = new MyEvent(this, message);
publisher.publishEvent(event);
return event.getResult();
}
}
```
在这个例子中,我们定义了一个MyPublisher类,它通过构造函数获取到ApplicationEventPublisher对象,并提供了一个publish方法来发布事件。在方法中,我们创建了一个MyEvent对象,并调用ApplicationEventPublisher的publishEvent方法来发布事件。最后,我们返回了事件的返回值。
这就是一个简单的Spring Event接收返回值的示例代码。
阅读全文