【Spring】xml方式注入其他类型属性:外部bean、内部bean、数组、list、map

1.字面量:属性的固定值

(1)null值
给Book类中的address属性注入null值,配置文件中写为

<property name="address">
<null/>
</property>

(2)属性值包含特殊符号
使用转义符<>

<!--报错-->
<property name="address" value="<<南京>>"></property>
<property name="address" value="&lt;&lt;南京>>"></property>

使用CDATA

<property name="address">
<value><![CDATA[<<南京>>]]></value>
</property>

2.注入外部bean

(1)调用其他类的方法,set方法不可少
image

(2)配置文件中,要创建两个对象,ref引用其id值

<bean id="userService" class="com.pxk.user.UserService">
<property name="userDao" ref="userDaoImpl"></property>
</bean>
<bean id="userDaoImpl" class="com.pxk.user.UserDaoImpl"></bean>

3.注入内部bean

一对多关系:部门是一,员工是多
image

<bean id="emp" class="com.pxk.cation.Emp">
<property name="ename" value="张三"></property>
<property name="gender" value="男"></property>
<property name="dept">
<bean id="dep" class="com.pxk.cation.Dept">
<property name="dname" value="安保部"></property>
</bean>
</property>
</bean>

4.注入属性-级联赋值

(1)使用ref

<bean id="emp" class="com.pxk.cation.Emp">
<property name="ename" value="张三"></property>
<property name="gender" value="男"></property>
<property name="dept" ref="dept"></property>
</bean>
<bean id="dept" class="com.pxk.cation.Dept">
<property name="dname" value="财务部"></property>
</bean>

(2)dept.dname
需要有dept属性的get方法(对象.属性)
image

<bean id="emp" class="com.pxk.cation.Emp">
<property name="ename" value="张三"></property>
<property name="gender" value="男"></property>
<property name="dept.dname" value="技术部"></property>
</bean>
<bean id="dept" class="com.pxk.cation.Dept">
<property name="dname" value="财务部"></property>
</bean>

5.注入集合类型属性

(1)数组、list、map和set集合
image

<bean id="stu" class="com.pxk.test.Stu">
<property name="courses">
<array>
<value>操作系统</value>
<value>数据库设计</value>
</array>
</property>
<property name="list">
<list>
<value>张三</value>
<value>李四</value>
</list>
</property>
<property name="maps">
<map>
<entry key="001" value="90"></entry>
<entry key="002" value="88"></entry>
</map>
</property>
<property name="sets">
<set>
<value>冰激凌</value>
<value>雪糕</value>
</set>
</property>
</bean>

(2)集合中的属性值为bean
学生类中有课程list,类型为Course
image

<bean id="stu" class="com.pxk.collectionType.Stu">
<property name="courseList">
<list>
<ref bean="course1"></ref>
<ref bean="course2"></ref>
</list>
</property>
</bean>
<!--多个Course对象-->
<bean id="course1" class="com.pxk.collectionType.Course">
<property name="cname" value="计算机组成原理"></property>
</bean>
<bean id="course2" class="com.pxk.collectionType.Course">
<property name="cname" value="操作系统"></property>
</bean>

6.把集合注入部分提取出来

(1)在bean.xml配置文件中引入util名称空间
image

<?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:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
</beans>

(2)使用util标签完成list集合注入提取
image

如果是对象类型,也可以用ref

<!-- 注入值-->
<util:list id="bookList">
<value>红楼梦</value>
<value>西游记</value>
<value>水浒传</value>
</util:list>
<!-- 使用-->
<bean id="book" class="com.pxk.collectionType.Book">
<property name="list" ref="bookList"></property>
</bean>
posted @   植树chen  阅读(655)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示