(第6天)每日源码调试之旅--实现CQRS模式的AXON框架

本文详细介绍了在调试AXON框架时,跟踪事件发布流程的过程。从AggregateLifecycle的publishOnEventBus方法开始,经过msg的元数据处理,再到EmbeddedEventStore的publish方法,进一步探讨了EventBus及其子类的事件发布机制。在UnitOfWork中,事件被加入到eventsQueue,并在不同阶段进行处理。最后,文章阐述了LockingRepository如何确保在并发环境下的线程安全,使用悲观锁来保护聚合类的创建与更新操作。
摘要由CSDN通过智能技术生成

接着前一天的调试,断点来到AggregateLifecycle的publishOnEventBus方法:

initializing默认为false,进入到父类AnnotatedAggregate的publishOnEventBus(用所给的event bus发布事件到外部的事件handlers)方法,在这之前先看参数处理:msg.andMetaData方法返回msg的副本,该消息的元数据与给定的元数据合并,此处没有传入元数据,所以为emptyMap:

eventBus是自己配置的EmbeddedEventStore,直接跳到EmbeddedEventStore的publish方法,EmbeddedEventStore并未重写继承自eventbus的publish(发布组event集合到这个bus,events会被分派到订阅的监听器中)方法,来到eventbus类:

此处将events集合转成list,跳到AbstractEventBus(Event Bus的基类&#x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值