복붙노트

[SPRING] 자식 컨텍스트에서 부모 컨텍스트에 정의 된 Bean 무시

SPRING

자식 컨텍스트에서 부모 컨텍스트에 정의 된 Bean 무시

우리 애플 리케이션은 멀티 테넌시를 지원해야합니다. 보드 된 고객 각각은 잠재적으로 코어 플랫폼 레벨 (공통 코드 / 정의)에서 정의 된 하나 이상의 빈 또는 빈의 일부 특성을 겹쳐 쓸 수 있습니다. 나는 이것을 처리하는 가장 좋은 방법이 무엇인지 궁금합니다.

해결법

  1. ==============================

    1.Spring은 동일한 빈 이름을 여러 번 재정의 할 수있게 해주 며, 주어진 이름에 대해 처리 된 마지막 빈 정의를이기는 것이다. 예를 들어, 핵심 빈을 정의하는 XML 파일을 가지고 클라이언트 특정 XML 파일로 임포트 할 수 있습니다.이 XML 파일은 일부 빈을 다시 정의합니다. 그러나 "이 bean 정의가 오버라이드"라고 특별히 말할 수있는 메커니즘이 없기 때문에 조금 약합니다.

    Spring은 동일한 빈 이름을 여러 번 재정의 할 수있게 해주 며, 주어진 이름에 대해 처리 된 마지막 빈 정의를이기는 것이다. 예를 들어, 핵심 빈을 정의하는 XML 파일을 가지고 클라이언트 특정 XML 파일로 임포트 할 수 있습니다.이 XML 파일은 일부 빈을 다시 정의합니다. 그러나 "이 bean 정의가 오버라이드"라고 특별히 말할 수있는 메커니즘이 없기 때문에 조금 약합니다.

    가장 쉬운 방법은 Spring 3에서 소개 된 새로운 @ Bean-syntax를 사용하는 것이다. bean을 XML로 정의하는 대신 Java로 정의한다. 그래서 당신의 핵심 빈은 @ Bean-annotated 클래스에서 정의 될 것이고, 클라이언트 configs는 그 클래스를 서브 클래스화할 것이고, 적절한 빈을 오버라이드 할 것이다. 이것에 의해, 표준의 Java @Override 주석을 사용해, 지정된 bean 정의가 오버라이드 (override)되고있는 것을 명시 적으로 나타낼 수가 있습니다.

  2. from https://stackoverflow.com/questions/4249978/overriding-the-bean-defined-in-parent-context-in-a-child-context by cc-by-sa and MIT license