接着前一天的调试,断点来到eventsQueue中设置的PREPARE_COMMIT阶段的回调:
此阶段先判断UnitOfWork有没有parent和其parent是否在PREPARE_COMMIT之前的阶段,满足条件的话,将当前UnitOfWork的eventQueue加入到其parent的eventQueue里,此处没有parent直接进入doWithEvent方法:,进入前先处理参数,调用AbstractEventBus(实际是其子类EmbeddedEventStore)的intercept方法:
此处完成的操作是调用定义的EventMessage的拦截器进行拦截处理,完成后返回处理过后的EventMessage的List,随后进入doWithEvent方法:
此处直接调用传入AbstractEventStore(EventStore的抽象实现,使用一个EventStorageEngine来存储和加载events,实际是其子类EmbeddedEventStor