【发布时间】:2018-02-08 00:34:20
【问题描述】:
我正在使用 spring-boot 来实现一些 rest-endpoint。我已经实现了一个 AbstractRepository 和一个带有 @Autowired 的 AbstractEnpoint。然后两者都由真正的 2 个端点扩展:ClientEndpoint 和 HospitalReservationListEndpoint。 但是当我尝试调用 Endpoints 中需要存储库的方法时,我在浏览器中收到以下错误:
"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> {
}
【问题讨论】:
标签: java spring rest spring-mvc spring-boot