<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--Spring中bean的关系主要有依赖关系和继承关系-->
<!-- 父bean -->
<!--<config id="addressBean" class="com.spring.cn.configig.autowire.AddressBean"-->
<!--p:city="成都" p:street="孵化园街道"/>-->
<!--
1.抽象bean,不能被IOC实例化,只能被继承,abstract="true"设置抽象bean
2.并不是所有的属性都会被子类bean继承,比如abstract
3.若某一个bean的class属性没有指定,则该bean一定是一个抽象bean
-->
<bean id="addressBean" class="com.spring.cn.config.autowire.AddressBean"
p:city="成都" p:street="孵化园街道" abstract="true"/>
<!-- bean配置的继承,使用parent属性指定继承哪个bean -->
<!--子bean-->
<bean id="addressBean1" parent="addressBean"/>
<!-- 重写city,street -->
<bean id="addressBean2" parent="addressBean1"
p:city="重庆" p:street="解放碑"/>
<bean id="carBean" class="com.spring.cn.config.autowire.CarBean"
p:brand="奔驰" p:price="200000"/>
<!--
bean的依赖关系
1. 可以通过depends-on属性设定bean的前置依赖关系,前置依赖bean会在本bean初始化之前创建好
2. 如果前置依赖于多个bean,则可以通过逗号,空格的方式添加
-->
<bean id="personBean" class="com.spring.cn.config.autowire.PersonBean"
p:name="donleo" p:addressBean-ref="addressBean2" depends-on="carBean"/>
</beans>