扫码一下
查看教程更方便
我们已经看到了如何使用 value 属性来配置基本数据类型和在你的 bean 配置文件中使用
标签的 ref 属性来配置对象引用。这两种情况下处理奇异值传递给一个 bean。
现在,如果您想传递多个值,例如 java 集合类型,例如 list、set、map 和 properties,该怎么办。 为了处理这种情况,spring 提供了四种类型的集合配置元素,如下所示
序号 | 元素 | 描述 |
---|---|---|
1 | 它有助于连线,如注入一列值,允许重复。 | |
2 | 它有助于连线一组值,但不能重复。 | |
3 | 它可以用来注入名称-值对的集合,其中名称和值可以是任何类型。 | |
4 | 它可以用来注入名称-值对的集合,其中名称和值都是字符串类型。 |
可以使用 或
你会遇到两种情况(a)传递集合中直接的值(b)传递一个 bean 的引用作为集合的元素。
我们看一个例子
这是 javacollection.java 文件的内容
javacollection.java
package com.jiyik; import java.util.*; public class javacollection { list addresslist; set addressset; map addressmap; properties addressprop; public void setaddresslist(list addresslist) { this.addresslist = addresslist; } public list getaddresslist() { system.out.println("list elements :" addresslist); return addresslist; } public void setaddressset(set addressset) { this.addressset = addressset; } public set getaddressset() { system.out.println("set elements :" addressset); return addressset; } // 设置 map 的 setter 方法 public void setaddressmap(map addressmap) { this.addressmap = addressmap; } // 打印并返回 map 的所有元素。 public map getaddressmap() { system.out.println("map elements :" addressmap); return addressmap; } // 设置property的 setter 方法 public void setaddressprop(properties addressprop) { this.addressprop = addressprop; } // 打印并返回property的所有元素。 public properties getaddressprop() { system.out.println("property elements :" addressprop); return addressprop; } }
以下是 mainapp.java 文件的内容
mainapp.java
package com.jiyik; import org.springframework.context.applicationcontext; import org.springframework.context.support.classpathxmlapplicationcontext; public class mainapp { public static void main(string[] args) { applicationcontext context = new classpathxmlapplicationcontext("beans.xml"); javacollection jc=(javacollection)context.getbean("javacollection"); jc.getaddresslist(); jc.getaddressset(); jc.getaddressmap(); jc.getaddressprop(); } }
以下是配置文件 beans.xml,其中包含所有集合类型的配置
beans.xml
india pakistan usa usa india pakistan usa usa india india pakistan usa usa
完成源代码和 bean 配置文件后,让我们运行应用程序。 如果应用程序一切正常,它将打印以下消息
list elements :[india, pakistan, usa, usa]
set elements :[india, pakistan, usa]
ap elements :{1 = india, 2 = pakistan, 3 = usa, 4 = usa}
property elements :{two = pakistan, one = india, three = usa, four = usa}
以下 bean 定义将帮助我们了解如何将 bean 引用作为集合元素之一注入。 即使可以将引用和值混合在一起,如以下代码片段所示
pakistan
要使用上面的 bean 定义,需要以这样一种方式定义我们的 setter 方法,以便它们也应该能够处理引用。
如果需要将空字符串作为值传递,则可以按如下方式传递
前面的示例等价于 java 代码:examplebean.setemail("")
如果你需要传递一个null值,可以使用如下方式进行传递
前面的示例等价于 java 代码:examplebean.setemail(null)