genericDAO와 함께 Spring 3.0을 사용하고 있습니다. 나는이 있습니다GenericDAO 및 NoSuchBeanDefinitionException : 고유 bean 없음 Spring 3.0
public interface GenericDAO<T, ID extends Serializable>
...
@Repository("genericDAO")
public class GenericDAOImpl<T, ID extends Serializable> implements GenericDAO<T, ID> {
...
public interface A extends GenericDAO<Turno, Long> {
...
public interface B extends GenericDAO<TipoTurno, Long> {
...
@Repository("A")
public class AImpl extends GenericDAOImpl<TipoTurno, Long> implements A{
...
@Repository("B")
public class BImpl extends GenericDAOImpl<TipoTurno, Long> implements B{
을하지만받을 때 그들에게 다음과 같이 주입 :
예상 하나의 일치 콩을하지만 3 발견 :
@Autowired A a;
내가 얻을 [genericDAOImpl하는을 , B]
이유를 이해할 수 없습니다. 나는 또한 항상 GenericDao을 찾고 특정되지 않은 봄처럼 보이는
@Resource(name="A")
와 나는 또한 항상 같은 예외를 얻을 @Qualifier하지만를 사용하여 시도조차
@Resource(type=A.class)
함께 할 것을 시도 수업.
하지만 여전히 작동하지 않습니다. 그리고 나는 왜 그런지 이해할 수 없다.
제안 사항?
대단히 감사합니다.
세 가지 경우 모두 동일한 오류 메시지가 표시됩니까? @Autowired 경우에는 "예상되는 단일 일치하는 bean"메시지를 얻을 수 있지만 @Resource (name = "A") 경우는 분명히 알 수 있습니다. getter와 멤버 변수 모두에 주석을 추가 할 수 있습니까? –
도움 주셔서 대단히 감사합니다. 나는 당신을 응답하기 위해 체크를 두 번했습니다. 그렇습니다. @Resource (name = "specific_name")를 사용할 때 org.springframework.beans.factory.NoSuchBeanDefinitionException이 발생합니다 : [xxx.model.entities.dao] 유형의 고유 bean이 없습니다. GenericDAO]가 정의 됨 : 기대되는 일치하는 단일 bean이지만 발견 된 3 : [genericDAO, A, B]. 귀하의 질문에 대해 나는 getter 주석을 달지 않았다. – CalamarBicefalo
@CalamarBicefalo qualifer 이름이 인터페이스와 동일합니다. 이것은 틀린 것입니다. – NimChimpsky