Axon 4-受JpaEventStorageEngine保护的构造函数

时间:2019-03-05 20:34:46

标签: spring-boot axon

尝试根据Axon 4 Framework Versioning Events上的可用文档在Axon 4中配置Upcaster时

我收到错误消息:JpaEventStorageEngine()已保护访问权限

    @Bean
    public JpaEventStorageEngine eventStorageEngine(
            Serializer serializer,
            DataSource dataSource,
            SingleEventUpcaster myUpcaster,
            EntityManagerProvider entityManagerProvider,
            PlatformTransactionManager transactionManager) {
        return new JpaEventStorageEngine(serializer,
                myUpcaster::upcast,
                dataSource,
                entityManagerProvider,
                transactionManager);
    }

我想念什么?

1 个答案:

答案 0 :(得分:1)

我想我可以为您提供帮助。

很遗憾,您刚刚发现参考指南存在问题。 从Axon 4开始,不再通过构造器创建所有主要的基础结构组件,而是通过Builder pattern来创建。

因此,正确的创建方法是:

@Bean
public JpaEventStorageEngine eventStorageEngine(Serializer eventSerializer,
                                                Serializer snapshotSerializer,
                                                DataSource dataSource,
                                                SingleEventUpcaster myUpcaster,
                                                EntityManagerProvider entityManagerProvider,
                                                TransactionManager transactionManager) throws SQLException {
    return JpaEventStorageEngine.builder()
                                .eventSerializer(eventSerializer)
                                .snapshotSerializer(snapshotSerializer)
                                .dataSource(dataSource)
                                .entityManagerProvider(entityManagerProvider)
                                .transactionManager(transactionManager)
                                .upcasterChain(myUpcaster)
                                .build();
}

我刚刚调整了参考指南以相应地反映出来;造成您的不便,我们深感抱歉。