ApplicationEventPublisher-Spring事件发布器
Spring的ApplicationEventPublisher
是一个接口,用于发布应用程序事件。事件发布器可以帮助解耦业务逻辑,让开发者在特定事件发生时进行监听和处理。
以下是一个简单的使用ApplicationEventPublisher
的例子:
- 定义一个事件类,继承
ApplicationEvent
:
public class CustomEvent extends ApplicationEvent {
public CustomEvent(Object source) {
super(source);
}
// 可以添加自定义的方法或属性
}
- 创建事件监听器,实现
ApplicationListener
接口:
@Component
public class CustomListener implements ApplicationListener<CustomEvent> {
@Override
public void onApplicationEvent(CustomEvent event) {
// 处理事件逻辑
System.out.println("Event received: " + event);
}
}
- 在服务中注入
ApplicationEventPublisher
并发布事件:
@Service
public class CustomService {
private final ApplicationEventPublisher publisher;
@Autowired
public CustomService(ApplicationEventPublisher publisher) {
this.publisher = publisher;
}
public void doSomething() {
// 业务逻辑
// 发布事件
CustomEvent customEvent = new CustomEvent(this);
publisher.publishEvent(customEvent);
}
}
当doSomething
方法被调用时,CustomEvent
事件被发布,所有实现了ApplicationListener<CustomEvent>
的监听器都会接收到这个事件,并执行其onApplicationEvent
方法中的逻辑。
评论已关闭