이 프로젝트는 Maven을 사용하여 관리됩니다. 종속성 jar 트리 구조는 다음과 같습니다.
으아악다음은 스프링 구성 파일입니다.
으아악준비된 jar 패키지를 실행한 후 다음 오류가 보고됩니다.
종속성에 대해 [org.springframework.data.mongodb.core.MongoTemplate] 유형의 적격 Bean이 없습니다. 이 종속성에 대한 자동 와이어 후보로 적격한 최소 1개의 Bean이 예상됩니다.
내 생각은 위의 jar 트리와 구성 파일을 통해 spring-data-mongodb 패키지에 의존했다는 것을 증명하는 것입니다.
그렇다면 MongoTemplate이 정의되지 않았다는 메시지가 계속 표시되는 이유는 무엇입니까?
알려준 @Kavlez와 도움을 준 @XFHNever에게 감사드립니다. 실제로는 구성 파일에 로드되지 않습니다. 항목 클래스에 @ImportResource("applicationContext.xml")를 추가하세요
로드에 성공한 후 NoUniqueBeanDefinitionException 예외가 보고되었으며
으로 설명되었습니다.
[org.springframework.data.mongodb.core.MongoTemplate] 유형의 적격 Bean이 정의되지 않았습니다. 일치하는 단일 Bean이 예상되었지만 2가 발견되었습니다. SequenceTemplate,grouponTemplate
그런데 이때 주입하는 방식은 @Autowired와 @Qualifier("grouponTemplate")(다른 스프링 프로젝트에서는 이렇게 해도 문제가 없습니다)인데 왜 NoUniqueBeanDefinitionException이 계속 보고되나요?
글쎄, 문제의 원인은 발견되지 않았지만 다행히 해결되었습니다:
스프링 구성 파일에 새 Bean이 추가되었습니다.
프로젝트가 진행됩니다~
마지막으로, 운이 좋게도 이 문제의 원인을 알게 된다면 이 질문 아래에 업데이트하겠습니다. 다시 한 번 감사드립니다.
제보자가 제공한 정보에 따르면 Spring 구성 파일에 선언된 두 개의 MongoTemplate이 모두 감지되지 않았습니다.
이어야 합니다.@XFHNever가 말했듯이 동일한 유형의 두 Bean이 동시에 구성되어 어느 것이
Autowire
인지 식별할 수 없기 때문인 경우 이 경우 예외 메시지는제 생각에는 구성 파일을 읽지 않았을 수도 있습니다.
구성 파일에 두 개의 MongoTemplate을 구성했는데 Spring이 어떤 것을 로드해야 할지 모르기 때문일 수 있습니다. 로드할 MongoTemplate을 지정하기 위해 @Autowired와 @Qualifier를 동시에 사용하는 것을 고려할 수 있습니다.
PS:
http://www.jianshu.com/p/6c82e6e21e5d
제가 전에 정리한 글을 읽어보실 수 있습니다