더북(TheBook)

3.7 빈 상속 설정하기

때로는 같은 타입의 빈이나 공유 인터페이스를 구현하는 빈을 여러 개 정의할 필요가 있습니다. 이 빈이 일부 설정만 공유하고 다른 구성은 공유하지 않으려고 한다면 문제가 될 수 있습니다. 공유 구성을 동기화 상태로 유지하는 과정에서 오류가 발생하기 쉽고, 큰 프로젝트에서는 시간이 오래 걸릴 수 있습니다. 스프링은 이 문제를 해결하려고 같은 ApplicationContext 인스턴스에 존재하는 다른 빈의 프로퍼티 설정을 상속받을 수 있도록 <bean> 정의를 제공합니다. 필요에 따라 자식 빈의 특정 프로퍼티 값을 덮어씀으로써 완전히 제어할 수 있고, 부모 빈은 각 빈에 기본 구성을 제공할 수 있습니다. 다음 예제는 두 개의 빈이 있는 간단한 구성 파일(app-context-xml.xml)입니다. 그중 하나는 다른 빈의 자식 빈입니다.

예제 3-127 두 개의 빈이 정의된 구성 파일([[bean-inheritance]] app-context-xml.xml)

<beans ...>

    <bean id="parent" class="com.apress.prospring5.ch3.xml.Singer"
        p:name="John Mayer" p:age="39"/>

    <bean id="child" class="com.apress.prospring5.ch3.xml.Singer"
        parent="parent" p:age="0"/>

</beans>
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.