3.6. Bean definition inheritance
bean 설정 내용 사이에 상속 관계를 정의할 수 있습니다.
1. 부모쪽 bean 설정 파일에는 아무것도 설정하지 않아도 괜찮지만 만약 class 속성에 아무것도 지정하지 않을 경우에는 abstract="ture"를 추가해야 합니다.
2. 자식쪽 bean 설정에서는 상속할 bean을 parent 속성에 적어 주면 됩니다.
abstract="true"를 설정한 bean의 객체는 만들 수 없습니다. 테스트는 다음과 같이 작성했습닏.
@Test public void beanDefinitionInheritance(){
try{
Member keesun13 = getMember("keesun13");
fail("keesun13 cannot be instantiation");
}catch (Exception e) {
}
Member keesun14 = getMember("keesun14");
assertTrue(keesun14.getId().equals("기선이다"));
assertTrue(keesun14.getPassword().equals("password"));
assertTrue(keesun14.getAge() == 26);
}
try{
Member keesun13 = getMember("keesun13");
fail("keesun13 cannot be instantiation");
}catch (Exception e) {
}
Member keesun14 = getMember("keesun14");
assertTrue(keesun14.getId().equals("기선이다"));
assertTrue(keesun14.getPassword().equals("password"));
assertTrue(keesun14.getAge() == 26);
}
설정 파일은 다음과 같습니다.
<bean id="keesun13" abstract="true">
<property name="id" value="기선" />
<property name="password" value="password" />
</bean>
<property name="id" value="기선" />
<property name="password" value="password" />
</bean>
<bean id="keesun14" class="beanConfiguration.Member" parent="keesun13">
<property name="id" value="기선이다" />
<property name="age" value="26" />
</bean>
테스트가 통과 합니다.