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. 此功能对应设计模式中的观察者模式:一个改变,所有观察者均能收到通知。

推荐文章