Spring Data Reactive:找不到仓库

3

这是我的错误信息:

***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in cat.gencat.clt.git.backend.controller.PersonController required a bean of type 'cat.gencat.clt.git.backend.repositories.PersonRepository' that could not be found.

Action:
Consider defining a bean of type 'cat.gencat.clt.git.backend.repositories.PersonRepository' in your configuration.

我的控制器:

@RestController
@RequestMapping(value = "/persons")
@RequiredArgsConstructor
class PersonController {

    private final PersonRepository persons;

    @GetMapping("")
    public Flux<Person> all() {
        return this.persons.findAll();
    }
}

并且:

@Repository
public interface PersonRepository extends ReactiveCrudRepository<Person, String> {
    
}

另外,我已启用@EnableR2dbcRepositories

我不太明白我做错了什么。

有任何想法吗?

编辑

src/main/java
└── cat
    └── gencat
        └── clt
            └── git
                └── backend
                    ├── BackendApplication.java
                    ├── configuration
                    │   ├── GitConfiguration.java
                    │   ├── GitProperties.java
                    │   ├── LoginProperties.java
                    │   └── TokenProperties.java
                    ├── controller
                    │   ├── GicarController.java
                    │   └── PersonController.java
                    ├── model
                    │   └── Person.java
                    ├── repositories
                    │   └── PersonRepository.java
                    ├── SavePersonRunner.java
                    └── security
                        ├── JWTProvider.java
                        └── SecurityConfiguration.java

您的软件包结构是什么样子的? - dunni
1
您的PersonRepository未被Spring扫描。这是哪种类型的Spring项目?是SpringBoot吗?是否有特定的扫描配置(ComponentScan注释)?您的项目结构是什么样子的? - Fabien
你的后端应用程序是SpringBoot应用程序吗? - Fabien
有带有@EnableR2dbcRepositories注解的类吗?您是否在注解中指定了基本包?@EnableR2dbcRepositories(basePackage="cat.gencat.clt.git.backend.repositories") - Fabien
是的,这是一个Spring Boot应用程序。 - Jordi
显示剩余2条评论
2个回答

1
在你的 PersonRepository 接口中,继承 R2dbcRepository 而不是 ReactiveCrudRepository。我不知道原因,但我遇到了同样的问题,这个方法解决了它。

0
你在主文件BackendApplication.java中使用过@SpringBootApplication注解吗?请注意,此注解具有@ComponentScan功能,它会扫描包以创建由Spring(Spring的IOC容器)管理的bean。
你能检查/分享文件BackendApplication.java吗?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接