1. bean配置信息重用
parent只是重用了另一个Bean组件的配置信息,要覆盖的就重新设置,不变的就复用配置信息。但并不是説当前Bean继承另一个Bean,这不是类的继承关系1
2
3
4
5
6
7
8
9
10<bean id="car1" class="bean.Car">
<property name="name" value="car1" />
<property name="price" value="5000.0" />
</bean>
<!-- parent: 指定要重用哪个Bean组件的配置信息 -->
<bean id="car2" class="bean.Car" parent="car1">
<!-- 覆盖配置信息 -->
<property name="name" value="car2" />
</bean>
编写测试方法,可以看到属性的配置继承下来了1
2
3
4
5
6
public void testIoc() throws Exception {
ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
Car car = (Car) ioc.getBean("car");
System.out.println(car);
}
2. abstract声明模板Bean
1 | <!-- abstract声明当前Bean不会被Spring实例化,只是作为一个配置模板,供其它Bean组件去继承 --> |
尝试获取模板Bean1
2
3
4
5
public void testIoc() throws Exception {
ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
Car carTemplate = (Car) ioc.getBean("carTemplate");
}
运行,抛出异常,abstract Bean不能被实例化,所以无法从IOC容器中获取1
org.springframework.beans.factory.BeanIsAbstractException: Error creating bean with name 'carTemplate': Bean definition is abstract