Spring 注入集合
-
Bean 定义继承
您已经看到了如何在Bean配置文件中使用property标记的ref属性来使用value属性和对象引用来配置基本数据类型。这两种情况都处理将不同值传递给bean的问题。现在,如果您希望传递多个值,比如Java集合类型,比如List、Set、Map和Properties,该怎么办呢?为了处理这种情况,Spring提供了四种类型的集合配置元素,如下所示- <list> - 这有助于注入,即注入值列表,允许重复。
- <set> - 这有助于注入一组值,但不能重复。
- <map> - 这可用于注入名称/值对的集合,其中名称和值可以是任何类型。
- <props> - 这可用于注入名称-值对的集合,其中名称和值均为字符串。
您可以使用<list>或<set>连接java.util.Collection或数组的任何实现。您将遇到两种情况(a)传递集合的直接值,以及(b)传递bean的引用作为集合元素之一。 -
实例
假设我们拥有一个运行良好的Eclipse IDE,并采取以下步骤来创建一个Spring应用程序:- 创建一个名称为SpringExample的项目,并在创建的项目的src文件夹下创建一个包com.jc2182
- 使用“添加外部JAR”选项添加所需的Spring库,如“Spring Hello World示例”一章中所述。
- 在com.jc2182包下创建Java类JavaCollection和MainApp。
- 在src文件夹下创建Beans配置文件Beans.xml。
- 最后一步是创建所有Java文件和Bean配置文件的内容,然后按以下说明运行应用程序。
以下是JavaCollection.java的内容。以下是MainApp.java文件的内容。以下是配置文件Beans.xml,它具有所有集合类型的配置完成创建源和Bean配置文件后,让我们运行该应用程序。如果您的应用程序一切正常,它将显示以下消息: -
注入 Bean引用
以下Bean定义将帮助您了解如何将Bean引用作为集合的元素之一进行注入。即使您可以将引用和值混合在一起,如以下代码片段所示要使用上面的bean定义,您需要以一种应该可以处理引用的方式定义setter方法。 -
注入NULL和空字符串值
如果您需要传递一个空字符串作为值,则可以按以下方式传递它:前面的示例等效于Java代码:exampleBean.setEmail("");
如果需要传递NULL值,则可以按以下方式传递它前面的示例等效于Java代码:exampleBean.setEmail(null);