Axon 3 未找到处理程序

Axon 3 not found handler

我是 Java 的新手。我会仅为工作和处理命令配置我的处理程序。此时我收到 Exception No handler was subscribed to command [com.capgemini.books.CreateBook].

我的代码如下:

@Configuration
public class ControllerConfig {
    @Bean
    public CommandBus commandBus() {
        return new SimpleCommandBus();
    }
}

public class CreateBookHandler {
    public CreateBookHandler() { }

    @CommandHandler
    public void handle(CreateBook command) {
       Book newBook = new Book(1001L, "anonymous", command.bookTitle());
    }
}

希望我能帮到你 :-)

让您 运行 您的应用程序通过 Spring 引导,并且您正在使用 axon-spring-boot-starter 依赖项自动连接所有内容,那么我知道您缺少什么。 CreateBookHandler 不是 Spring Bean,因此 Axon 的自动连接设置不会将其视为一个 bean,因此无法在其上找到 @CommandHandler 注释函数。

此外,我通常会将我的命令处理函数直接放在聚合上,而不是放在我的设置中的单独组件中。这样做的原因是因为命令大部分时间都在单个聚合的上下文中,那么为什么不让聚合本身处理它呢?

希望对您有所帮助!