问题描述
我正在将现有的 axon-core : 3.3.6 升级到 4.0.4,但在构建应用程序时遇到了这个问题,我该如何解决?
这里是个例外:
通过构造函数参数0表示的不满足的依赖; 嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException: 使用在类路径中定义的名称“commandGateway”创建 bean 时出错 资源 [org/axonframework/springboot/autoconfig/AxonAutoConfiguration.class]: 通过方法“commandGateway”表达的不满意依赖 参数 0;嵌套异常是 org.springframework.beans.factory.NoUniqueBeanDeFinitionException:否 'org.axonframework.commandhandling.CommandBus' 类型的合格 bean 可用:在候选者中发现不止一个“主要”bean: [commandBus,分布式CommandBus]
解决方法
共享异常提到:
在候选中发现了不止一个“主要”bean:[commandBus,分布式命令总线]
这可能意味着您的 CommandBus
bean 被 @Primary
注释。如果是这样,您可以删除该注释,因为 DistributedCommandBus
实例应该仅用作主要实例。
如果不是这种情况,您可以通过显式配置 CommandGateway
来解决该问题。这样,您就可以覆盖 Axon 的自动配置,这显然很难解决要使用的“命令总线”。您要构建的类是 DefaultCommandGateway
,它引用 CommandBus
作为网关。您可能想要注入 DistributedCommandBus
。
最后一点,Axon 已经升级到 4.5 版。在此过程中已经进行了许多可能值得的改进。您遇到的某些自动配置问题也不太可能在某个中间版本中得到解决。