![](https://csdnimg.cn/release/download_crawler_static/88705208/bg5.jpg)
4. 类类型属性的赋值(属性是其他类的一个对象~)
(1)使用ref属性引用IOC容器中类型能够兼容匹配的bean的id
(2)使用级联方式为实体类型的属性赋值
(3) 使用内部bean
注意:内部bean不能通过IOC容器在外部进行获取,只能在bean的内部使用
<!--
特殊字符的处理:CDATA(可以在里面写任意的特殊字符,会原样输出)
★ 不管内容是什么,得到的都是字符串类型,因此如果使用构造器注入并且不指定name和index的方式需
要注意
快捷键:大写的 CD
(当然特殊字符也可以用转义字符)
-->
<property name="book">
<value>
<![CDATA[<<斗破苍穹>>&&<<斗罗大陆>>]]>
</value>
</property>
<!--
属性:
ref:引用外部的bean
此时所被引用的bean,只需要对应的对象能够满足:【被引用对象 instanceof 该属性的类型】
即,兼容类型 即可
-->
<bean id="Employee" class="com.atguigu.spring.bean.Emp">
<property name="dept" ref="DeptSon"></property>
</bean>
<!--
Employee --属性-> Dept类 --子类-> DeptSon
【DeptSon类型的对象 instanceof Dept】 // true
// 注:只要是Dept创建的对象或者其子类创建的均为
true
-->
<bean id="DeptSon" class="com.atguigu.spring.bean.DeptSon">
<property name="dId" value="1234"></property>
<property name="dName" value="销售部"></property>
</bean>
<!--
注意:在通过级联为属性赋值之前,一定要保证该属性不为null,即要先通过其他方式为属性赋值
所以很少用~~~
-->
Value of nested property 'dept' is null
<bean id="Employee" class="com.atguigu.spring.bean.Emp">
<property name="dept" ref="DeptSon"></property>
<!--必须先给dept赋值,否则报错:Value of nested property 'dept' is null-->
<property name="dept.dId" value="1002"></property>
<property name="dept.dName" value="宣传部"></property>
</bean>