Axon 3未找到处理程序
问题描述:
我是Java初学者。我会配置我的处理程序仅用于工作和处理命令。在这一刻我收到Exception
No handler was subscribed to command [com.capgemini.books.CreateBook]
。Axon 3未找到处理程序
我的代码如下所示:
@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());
}
}
答
希望我可以帮你这个:-)
以你通过春启动运行你的应用程序和您正在使用的axon-spring-boot-starter
依赖关系自动连线一切,然后我知道你错过了什么。 CreateBookHandler
不是Spring Bean,因此Axon的自动布线设置并没有注意到它是一个bean,因此无法在其上找到@CommandHandler
注释的函数。
此外,虽然我通常把我的命令处理函数直接放在聚合上,而不是在我的设置中的一个单独的组件。原因在于,因为命令大多数情况下都是单个聚合的情况下,所以为什么不让聚合本身处理呢?
希望这可以帮助你!
你是100%的权利。我忘记了标记处理程序是一个bean。也许不会忘记,我只是这个技术堆栈的初学者。感谢您的耐心和准确的答复。 – gargi258
没问题,我很高兴得到这个帮助! :-) – Steven