SpringBoot + Mongodb 개발의 MongoTamplate 관련 구성 문제
黄舟
黄舟 2017-04-24 09:13:28
0
3
629

배경:

이 프로젝트는 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이 추가되었습니다.

으아악

프로젝트가 진행됩니다~

마지막으로, 운이 좋게도 이 문제의 원인을 알게 된다면 이 질문 아래에 업데이트하겠습니다. 다시 한 번 감사드립니다.

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

모든 응답(3)
伊谢尔伦

제보자가 제공한 정보에 따르면 Spring 구성 파일에 선언된 두 개의 MongoTemplate이 모두 감지되지 않았습니다.
@XFHNever가 말했듯이 동일한 유형의 두 Bean이 동시에 구성되어 어느 것이 Autowire인지 식별할 수 없기 때문인 경우 이 경우 예외 메시지는

이어야 합니다.

org.springframework.beans.factory.NoUniqueBeanDefinitionException: 해당 유형의 Bean이 없습니다
[org.springframework.data.mongodb.core.MongoTemplate]이 정의되었습니다:
하나의 일치하는 빈을 예상했지만 2개를 찾았습니다

제 생각에는 구성 파일을 읽지 않았을 수도 있습니다.

黄舟

구성 파일에 두 개의 MongoTemplate을 구성했는데 Spring이 어떤 것을 로드해야 할지 모르기 때문일 수 있습니다. 로드할 MongoTemplate을 지정하기 위해 @Autowired와 @Qualifier를 동시에 사용하는 것을 고려할 수 있습니다.

PS:

  1. @Resource는 기본적으로 이름에 따라 조립되어 주입됩니다. 이름과 일치하는 Bean을 찾을 수 없는 경우에만 @Resource(name="studentDao")
  2. @Autowired는 기본적으로 타입에 따라 구성되어 주입되는데, 이름에 따라 할당하고 주입하려면 @Qualifier와 함께 사용해야 합니다.("studentDao")
  3. @Resource 주석은 J2EE에서 제공되며 @Autowired는 Spring에서 제공되므로 스프링에 대한 시스템 의존성을 줄이기 위해 @Resource를 사용하는 것이 좋습니다.
洪涛

http://www.jianshu.com/p/6c82e6e21e5d
제가 전에 정리한 글을 읽어보실 수 있습니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿