Axon保存事件应该先将事件保存到事件存储中,还是先发布到事件总线中?
创始人
2024-09-29 07:30:37
0

在 Axon 框架中,事件驱动架构(EDA)中的事件总线和事件存储是两个核心组件。当领域对象进行状态更改时,会生成一个或多个领域事件。这些事件将首先保存在事件存储中,然后通过事件总线进行传播。因此,Axon 的默认行为是首先将事件保存到事件存储中,然后将其发布到事件总线中。

下面是一个简单的代码示例,展示了如何使用 Axon 框架来处理事件:

首先,我们需要定义一个领域事件:

public class AccountCreatedEvent {
    private final String accountId;
    private final String ownerName;

    // Constructor and getters
}

接下来,我们需要定义一个领域对象:

@Aggregate
public class Account {
    @AggregateIdentifier
    private String accountId;

    private String ownerName;

    // Define command-handling methods that update the object state
    @CommandHandler
    public void createAccount(CreateAccountCommand command) {
        apply(new AccountCreatedEvent(command.getAccountId(), command.getOwnerName()));
    }

    // Define event-handling methods that update the object state in response to domain events
    @EventSourcingHandler
    public void on(AccountCreatedEvent event) {
        this.accountId = event.getAccountId();
        this.ownerName = event.getOwnerName();
    }
}

在这个示例中,Account 领域对象具有一个 createAccount 命令处理程序,它将 AccountCreatedEvent 领域事件应用于 AccountAccount 对象还具有一个事件处理程序,该处理程序将 AccountCreatedEvent 领域事件应用于内部状态。

最后,我们可以使用 Axon 注册我们的领域对象和命令处理程序,在这个过程中,Axon 将自动配置其默认的事件保存和发布行为:

@Configuration
public class AxonConfig {
    @Bean
    public Account account() {
        return new Account();
    }

    @Bean
    public CommandHandlerInterceptor commandHandlerInterceptor() {
        return new BeanValidationInterceptor<>();
    }

    // Configure the event store and event bus
    @Bean
    public EventStorageEngine eventStorageEngine() {
        return new InMemoryEventStorageEngine();
    }

    @Bean
    public EventBus eventBus

相关内容

热门资讯

第6分钟辅助!pokemmo辅... 第6分钟辅助!pokemmo辅助器脚本下载,微信小程序边锋辅助下载(今日科普开挂辅助工具);最新版2...
第四分钟辅助!德州之星扫描器,... 第四分钟辅助!德州之星扫描器,久久大厅挂价格(一秒答解开挂辅助神器);久久大厅挂价格软件透视开挂作为...
四分钟辅助!战神辅助器,jj斗... 四分钟辅助!战神辅助器,jj斗地主外卦(透视最新开挂辅助平台);jj斗地主外卦AI智能教程细节普及j...
第五分钟辅助!新海贝之城app... 第五分钟辅助!新海贝之城app破解,佛手在线辅助器苹果版(今日焦点开挂辅助下载);1、超多福利:超高...
四分钟辅助!杭州都莱辅助软件,... 四分钟辅助!杭州都莱辅助软件,广西八一字牌辅助(推荐攻略开挂辅助下载);1、让任何用户在无需AI插件...
五分钟辅助!九游辅助真的假的,... 五分钟辅助!九游辅助真的假的,全民大菠萝黑金版辅助器(透视了解开挂辅助软件);全民大菠萝黑金版辅助器...
六分钟辅助!皇豪互众辅助软件是... 六分钟辅助!皇豪互众辅助软件是干嘛的,威信茶馆跑辅助器(揭秘一下开挂辅助下载);最新版2026是一款...
第八分钟辅助!wejoker辅... 第八分钟辅助!wejoker辅助软件视频,海贝之城辅助软甲下载(分享开挂内幕开挂辅助下载);一、海贝...
第三分钟辅助!掌中乐游戏修改器... 第三分钟辅助!掌中乐游戏修改器,新畅游互娱辅助(终于清楚开挂辅助工具);新畅游互娱辅助是一种具有地方...
第十分钟辅助!pokemmo辅... 第十分钟辅助!pokemmo辅助器脚本下载,广东星悦有外开挂辅助器吗(透视了解开挂辅助神器);人气非...