[SPRING] 동일한 스프링 빈을 같은 이름으로 두 번 정의하기
SPRING동일한 스프링 빈을 같은 이름으로 두 번 정의하기
Spring IOC에서 유효한 (동일한 이름과 클래스를 가진) bean에 대한 두 가지 정의가 있습니까?
web.xml에 포함 된 두 개의 bean 정의 파일을 가지고 있습니다. 아래 샘플을 참조하십시오.
applicationContext-beans1.xml
<bean name="myWao"
class="com.beans.myBean">
</bean>
applicationContext-beans2.xml
<bean name="myWao"
class="com.beans.myBean">
</bean>
나는 지금까지 아무런 문제도 안고있다. 그러나 이것은 멀티 스레드 및 클러스터링되는 실제 환경에 영향을 미칠 수 있습니까?
참고 : 두 XML 모두에서 정의 된 다른 빈을 사용할 수 있으므로 두 XML이 모두로드됩니다 (한 번만).
해결법
-
==============================
1.그것은 유효하지만 한 bean이 다른 bean에 의해 무시된다는 것을 알 수 있습니다. 로그에 다음과 같이 표시됩니다.
그것은 유효하지만 한 bean이 다른 bean에 의해 무시된다는 것을 알 수 있습니다. 로그에 다음과 같이 표시됩니다.
Overriding bean definition for...
이 동작을 사용하면 이전에 제공된 bean 정의를 겹쳐 쓸 수 있습니다. 그것은 귀하의 애플 리케이션의 정적 어셈블리에 영향을 미칩니다 및 귀하의 질문에 제안 스레딩 / 클러스터링과 관련이 없습니다.
DefaultListableBeanFactory를 사용하면 setAllowBeanDefinitionOverriding ()을 통해이 동작을 구성 할 수 있습니다.
-
==============================
2.이는 특히 타사 bean의 구현을 변경하려고 할 때 유효합니다 (bean의 구현을 변경할 수없는 곳). 그리고 어디에서 추가 / 병합 속성을 제공 / 구성해야하는지 콩.
이는 특히 타사 bean의 구현을 변경하려고 할 때 유효합니다 (bean의 구현을 변경할 수없는 곳). 그리고 어디에서 추가 / 병합 속성을 제공 / 구성해야하는지 콩.
Bean의 재정의는 web.xml 또는 독립 실행 형을 통해 ApplicationContext를 작성하기 위해 제공 한 xml 순서에 따라 다릅니다. 최신 bean 정의가 게임에서 이길 것입니다.
from https://stackoverflow.com/questions/10993181/defining-the-same-spring-bean-twice-with-same-name by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 프로토 타입 범위를 사용해야 할 때? (0) | 2019.02.01 |
---|---|
[SPRING] JPA에서 Spring MVC를 사용하여 엔티티의 속성 하위 집합 만 업데이트 할 수 있습니까? (0) | 2019.02.01 |
[SPRING] UsernamePasswordAuthenticationToken에 대한 AuthenticationProvider가 없습니다. (0) | 2019.02.01 |
[SPRING] Spring 용 webflux 사용자 정의 인증 (0) | 2019.02.01 |
[SPRING] Jdbc 템플릿 autowiring 데이터 원본 문제로 스프링 부트 자동 구성 (0) | 2019.02.01 |