01 Spring学习之-事件驱动eventListener
发布于 2022年 04月 11日 00:35
观察者模式
1.注册一个监听事件
继承ApplicationEvent 类
public class BusinessEvent extent ApplicationEvent {
public BusinessEvent(Object source) {
super(source);
}
}
2. 注册事件监听
@Component
public class OwnBusinessEventListener implements ApplicationListener<BusinessEvent> {
@Override
public void onApplicationEvent(BusinessEvent event) {
//TODO
System.out.println("执行自己的业务逻辑");
}
}
3. 触发事件监听
@Autowired
private ApplicationContext context;
void xxxMethod() {
//TODO previous business code
BusinessEvent event = new BusinessEvent("");
context.publishEvent(event);
}
4. 功能扩展
如果需要在一个业务中同时有多个任务处理,则只需要创建一个新的 ApplicationListener 的实现类即可,内部定义自己的处理逻辑。
1. 当主业务流程执行时,所有监听BusinessEvent的监听器都会收到通知,从而执行业务
2. 此功能对应设计模式中的观察者模式:一个改变,所有观察者均能收到通知。