我正在构建一个Web应用程序,我需要跟踪一些事件,如短信发送,传送或失败。为此,我想使用Axonframework。我在官方网站和this website
上都遵循了axonframework教程但我没有找到任何解决方案来从Axon本身创建的daomainevententry表中获取事件。我正在使用Java语言,Spring框架和MySql数据库来完整开发我的应用程序。
请告诉我任何好的教程或解决方案。
答案 0 :(得分:1)
如果您正在使用JpaEventStorageEngine
(例如,您在类路径上有spring-data-jpa
并使用application.properties
或application.yml
配置了JPA持久性单元),Axon正在使用实体{ {1}}存储事件。在您的数据库中,这些会导致表DomainEventEntry
中的条目或类似的内容。
要从Spring访问它,您可以自己使用Spring-Data。定义Spring-Data Repository:
DOMAIN_EVENT_ENTRY
通过这样做,您将获得从此存储库查询的默认访问方法。要进一步定制,您可以编写其他方法。请参考documentation of Spring Data了解如何操作。
您可能有兴趣查询特定聚合的事件:
import org.axonframework.eventsourcing.eventstore.jpa.DomainEventEntry;
import org.springframework.data.jpa.repository.JpaRepository;
public interface DomainEventRepository extends JpaRepository<DomainEventEntry, Long> {
}
或按特定类型:
List<DomainEventEntry> findByAggregateIdentifier(String aggregateIdentifier);
要了解更多内容,只需导航List<DomainEventEntry> findByType(String type);
的层次结构并寻找有趣的字段。
希望这有帮助,
西蒙