우리는 흰색으로 표시된 응용 프로그램 (여러 고객에게 브랜드 경험을 지원하는 하나의 응용 프로그램)이 있습니다. 고객 당 맞춤 구성 요소를 지원하기 위해 공동 브랜드 버전의 구성 요소를로드 할 수 있기를 원합니다. 예를 들어, 뭔가 같은 :봄 콩을 "화이트 라벨"하는 방법
<!-- default service -->
<bean id="service" class="com.blah.myService" primary="true">
<property name="myBean" ref="bean" />
</bean>
<!-- custom service for client 123 -->
<bean id="service_123" class="com.blah.myService">
<property name="myBean" ref="bean" />
</bean>
<!-- default bean -->
<bean id="bean" class="com.blah.Bean" primary="true"/>
<!-- bean for client 123 -->
<bean id="bean_123" class="com.blah.Bean" />
우리는 ApplicationContext를 서브 클래 싱 시도, 이것은 최상위 콩을 위해 작동하지만 autowire가 공동 작업자 봄의로드하는 동안 유선 및 캐시됩니다.
예를 들어, getBean ("service")을 호출하면 내 사용자 지정 ApplicationContext에서 호출을 가로 채서 service_123을 반환 할 수 있지만 "bean"속성은 캐시 된 버전을 사용하고 getBean 메서드를 다시 호출하지 않습니다. 따라서 사용자 지정 버전에서 연결할 수 없습니다.
이 유형의 런타임 사용자 정의 주입을 쉽게 수행 할 수 있습니까?
빈 구성은 앱당 또는 모두입니까? –
그들은 하나의 응용 프로그램 아래 함께 있습니다 –