[英]How do I use Qualifiers in Spring boot
这是我的项目结构
MODEL
回购
Controller(使用 TodoRepo 进行 CRUD 操作)
我有点困惑,我应该如何 go 在这里使用限定符? 我应该为每种类型创建不同的存储库吗?
TodoRepo.java - 使用 <TodoItem, Integer> 扩展 JPA repo
这里 TodoItem 是一个接口。 Springboot JPA 对它要处理哪个实体感到困惑(两个 class 实现了 TodItem 接口)。 声明指定的实体 class 而不是接口不会引发错误。
我认为您需要创建两个不同的存储库。 然后您可以使用@Autowired 注释将所需的 bean 注入您的 controller。
这将根据 @Qualifier 注释的值将适当的存储库实现(TodoType1Repo 或 TodoType2Repo)注入到您的 controller 中。
更多关于@Qualifier https://www.baeldung.com/spring-qualifier-annotation
@Qualifier("todoType1Repo")
@Repository
public class TodoType1Repo extends JpaRepository<TodoType1, Integer> {}
@Qualifier("todoType2Repo")
@Repository
public class TodoType2Repo extends JpaRepository<TodoType2, Integer> {}
@Autowired
@Qualifier("todoType1Repo")
private TodoRepo todoType1Repo;
@Autowired
@Qualifier("todoType2Repo")
private TodoRepo todoType2Repo;
public void handleRequest1() {
// Use todoType1Repo to perform CRUD operations on TodoType1 objects
}
public void handleRequest2() {
// Use todoType2Repo to perform CRUD operations on TodoType2 objects
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.