[SPRING] 같은 이름이지만 다른 패키지에있는 2 개의 bean; 어떻게 그들을 autowire?
SPRING같은 이름이지만 다른 패키지에있는 2 개의 bean; 어떻게 그들을 autowire?
동일한 이름을 가진 2 개의 bean을 가지고 있지만 다른 패키지에있는 어플리케이션이 있습니다. My Spring 애플리케이션은 어떤 Bean을 가져갈 지 결정할 수 없기 때문에 실패한다. 이것에 대한 해결책이 있습니까? 콩은 현재 특정 인터페이스를 구현하지 않습니다.
예외의 수정 된 예는 아래를 참조하십시오.
Caused by:
org.springframework.context.annotation.ConflictingBeanDefinitionException:
Annotation-specified bean name 'dataTransferHandler' for bean class
[aaaaa.ws.handler.DataTransferHandler] conflicts with existing,
non-compatible bean definition of same name and class
[bbbbb.ws.handler.DataTransferHandler]
해결법
-
==============================
1.콩에 다른 이름을 주어야합니다. 여러 콩이 같은 이름으로 정의 된 경우, 나중에 정의 된 이름이 이전에 정의 된 이름보다 우선합니다. 따라서 하나의 bean만이 dataTransferHandler라는 이름으로 존재하게됩니다.
콩에 다른 이름을 주어야합니다. 여러 콩이 같은 이름으로 정의 된 경우, 나중에 정의 된 이름이 이전에 정의 된 이름보다 우선합니다. 따라서 하나의 bean만이 dataTransferHandler라는 이름으로 존재하게됩니다.
이 두 bean에 다른 이름을 부여 할 수 있으므로 둘 다 존재할 수 있으며 다음을 사용하여 올바른 이름으로 삽입 할 수 있습니다. @AutoWired @Qualifier ( "dataTransferHandler") 또는 @Resource (name = "dataTransferHandler")
-
==============================
2.autowired 할 때 선호하는 bean defination에 attribute primary = "true"를 부여 할 수 있습니다. 그러나 bean 이름은 달라야합니다. 동일한 bean 이름에 대한 해결책은 없습니다.
autowired 할 때 선호하는 bean defination에 attribute primary = "true"를 부여 할 수 있습니다. 그러나 bean 이름은 달라야합니다. 동일한 bean 이름에 대한 해결책은 없습니다.
런타임에 autowired 클래스를 얻으면 기본 true bean은 autowiring에 대한 기본 설정을 갖게됩니다. 희망이 당신을 도와줍니다. 건배.
from https://stackoverflow.com/questions/11015205/2-beans-with-same-name-but-in-different-packages-how-to-autowire-them by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 CSRF 토큰과 함께 Struts2에서 파일 업로드 (1) | 2019.02.14 |
---|---|
[SPRING] 스프링 보안 - 액세스가 거부되었습니다 (사용자는 익명이 아닙니다) spring-security-core-4.0.3.RELEASE (0) | 2019.02.14 |
[SPRING] Letchy를 가져 오지 않는 FetchType.LAZY가있는 ManyToOne을 최대 절전 모드로 만듭니다. (0) | 2019.02.13 |
[SPRING] 여러 로그인 양식, 다양한 인증 관리자 - 최신 스프링 보안 (0) | 2019.02.13 |
[SPRING] Spring 부트 : Spring은 .properties 파일에 존재 함에도 불구하고 항상 디폴트 값을 속성에 할당합니다. (0) | 2019.02.13 |