![](/img/trans.png)
[英]No qualifying bean available: expected single matching bean but found 2
[英]No qualifying bean of type AbstractRepository<?>' available: expected single matching bean but found 2
我正在使用spring-boot來實現一些其他端點。 我實現了一個AbstractRepository和一個AbstractEnpoint,它是@Autowired。 然后將兩者都擴展為真正的2個端點:ClientEndpoint和HospitalReservationListEndpoint。 但是,當我嘗試在需要存儲庫的端點中調用方法時,在瀏覽器中出現以下錯誤:
"org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.parcaune.reservationmanagerservices.core.AbstractRepository<?>' available: expected single matching bean but found 2: clientRepository,hospitalReservationListRepository"
我的課程:
我的抽象資料庫
/*
@NoRepositoryBean
Annotation to exclude repository interfaces from being picked up
and thus in consequence getting an instance being created
*/
@NoRepositoryBean
public interface AbstractRepository<T> extends JpaRepository<T, String>
{
}
我的摘要終點
public abstract class AbstractEndpoint<T> {
@Autowired
protected AbstractRepository<T> repository;
@GET
@Path("/ping")
@Produces(MediaType.TEXT_PLAIN)
public String ping() {
return "Endpoint works!";
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<T> getAll() {
List<T> list = new ArrayList<>();
list = repository.findAll();
return list;
}
}
我的客戶班:
public interface ClientRepository extends AbstractRepository<Client> {
}
和
@Component
@Path("/clients")
public class ClientEndpoint extends AbstractEndpoint<Client> {
}
我的醫院班
public interface HospitalReservationListRepository extends
AbstractRepository<HospitalReservationList> {
}
和
@Component
@Path("/hospitalreservationlist")
public class HospitalReservationListEndpoint extends
AbstractEndpoint<HospitalReservationList> {
}
一種簡單的方法是將存儲庫添加為通用參數,如下所示:
public abstract class AbstractEndpoint<T,R extends AbstractRepository<T>> {
@Autowired
protected R repository;
...
我希望有一種更好的方法,如果可以找到一個,請在這里評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.