1

我正在构建一个 Web 应用程序,我需要在其中跟踪一些事件,例如 sms 发送、传递或失败。为此,我想使用 Axonframework 。我已经在官方网站和这个网站上关注了 axonframework 教程

但我没有找到任何解决方案来从 Axon 本身创建的 daomainevententry 表中获取事件。我正在使用 Java 语言、Spring 框架和 MySql 数据库来完成我的应用程序的开发。

请告诉我任何好的教程或解决方案。

4

1 回答 1

2

如果您正在使用JpaEventStorageEngine(例如,您在类路径上使用orspring-data-jpa配置了 JPA 持久性单元),Axon 正在使用实体来存储事件。在您的数据库中,这些结果会导致表中的条目或类似内容。application.propertiesapplication.ymlDomainEventEntryDOMAIN_EVENT_ENTRY

要从 Spring 访问它,您可以自己使用 Spring-Data。定义一个 Spring-Data 存储库:

import org.axonframework.eventsourcing.eventstore.jpa.DomainEventEntry;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DomainEventRepository extends JpaRepository<DomainEventEntry, Long> {

}

通过这样做,您将获得从该存储库查询的默认访问方法。对于进一步的定制,您可以编写其他方法。请查阅Spring Data 的文档以了解如何执行此操作。

可能您有兴趣查询某个聚合的事件:

List<DomainEventEntry> findByAggregateIdentifier(String aggregateIdentifier);

或按特定类型:

List<DomainEventEntry> findByType(String type); 

要探索更多,只需浏览 的层次结构DomainEventEntry并寻找有趣的领域。

希望这可以帮助,

西蒙

于 2018-02-05T15:43:22.100 回答