【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="<<南京>>"></property>
使用CDATA
<property name="address"> <value><![CDATA[<<南京>>]]></value> </property>
2.注入外部bean
(1)调用其他类的方法,set方法不可少
(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
一对多关系:部门是一,员工是多
<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方法(对象.属性)
<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集合
<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
<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名称空间
<?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集合注入提取
如果是对象类型,也可以用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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本