【发布时间】:2020-10-24 19:11:32
【问题描述】:
在我的代码中,我遇到了一个奇怪的问题,即我的一个存储库在我的控制器中没有被识别并在启动期间抛出这个错误。
com.test.pack.controller.ModulesController 中构造函数的参数 0 需要一个找不到的 'com.test.pack.repository.ModuleRepository' 类型的 bean。
这是我的控制器
@RestController
@RequestMapping("/modules")
class ModulesController(private val moduleRepository: ModuleRepository) {
@GetMapping
suspend fun getAllModules(): = Response(moduleRepository.findAllPurchasableModule().toList())
}
这是我的仓库
interface ModuleRepository: Repository<Module, Int> {
suspend fun getByAccountId(accountId: Long): Flow<Module>
suspend fun findAllPurchasableModule(): Flow<Module>
}
和impl
class ModuleRepositoryImpl(private val databaseClient: DatabaseClient) : ModuleRepository {
override suspend fun getByAccountId(accountId: Long): Flow<Module> {
return databaseClient.execute("SELECT * FROM mod WHERE actid = :acct").bind("accountId", acct).asType<Module>().fetch().flow()
}
override suspend fun findAllPurchasableModule(): Flow<Module> {
return databaseClient.execute("SELECT * FROM modules").asType<Module>().fetch().flow()
}
}
这是我的文件夹结构
com
test
pack
controller
ModulesController
repository
ModuleRepository
UserRepository
impl
ModuleRepositoryImpl
UserRepositoryImpl
我也在为User 存储库做同样的事情,它正在工作。但是,如果我将 @Repository("moduleRepository") 放在 impl 类的顶部,那么它就可以工作。但我不明白这个 ModuleRepository 有什么特别之处,与其他概念相同的概念不适用于这个。
【问题讨论】:
-
向我们展示您的文件夹结构
-
你在repository类上面添加@Repository注解了吗?
-
@ThomasAndolf 我添加了文件夹结构。
标签: spring-boot kotlin spring-webflux kotlin-coroutines spring-data-r2dbc