java springboot中的命令网关

vq8itlhq  于 2022-12-25  发布在  Java
关注(0)|答案(1)|浏览(95)

我有这个错误,使我没有推进在Spring Boot 的cQRS实现。
错误:com.lawrence.digitalbanking.command.controller.AccountCommandRestAPI中构造函数的参数0需要类型为“org.axonframework.commandhandling.gateway.CommandGateway”的Bean,但找不到该Bean。
下面是我的类代码:'

@RestController
@RequestMapping("/commands/accounts")
@Slf4j
@AllArgsConstructor
public class AccountCommandRestAPI {
    private CommandGateway commandGateway;
    
    @PostMapping("/create")
    public CompletableFuture<String> newAccount(@RequestBody CreateAccountRequestDTO request) {
        log.info("CreateAccountRequestDTO =>"+request.getInitialBalance().toString());
        CompletableFuture<String> resp =  commandGateway.send(new createAccountCommand(
                UUID.randomUUID().toString(),
                request.getInitialBalance(),
                request.getCurrency()
                ));
        return resp;
    }
}

第一个月

<dependency>
            <groupId>org.axonframework</groupId>
            <artifactId>axon-spring-boot-starter</artifactId>
            <version>4.6.2</version>
            <exclusions>
                <exclusion>
                    <groupId>org.axonframework</groupId>
                    <artifactId>axon-server-connector</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

我真的不知道我错过了什么。我已经尝试了几次。我的CommandGateway没有被注入。
请提前致谢。
我期望它运行,但是它抛出了那个错误,尽管依赖项包含在pom.xml中

arknldoa

arknldoa1#

我认为您的CommandGatewaybean没有在Spring上下文中注册。
试试看

@Autowired
private CommandGateway commandGateway;

也可以将其定义为bean:

@Bean
public CommandGateway commandGateway(CommandBus commandBus) {
    return new DefaultCommandGateway(commandBus);
}

相关问题