新聞中心
你已經(jīng)看到了如何使用 value 屬性來配置基本數(shù)據(jù)類型和在你的 bean 配置文件中使用標(biāo)簽的 ref 屬性來配置對象引用。這兩種情況下處理奇異值傳遞給一個 bean。

成都創(chuàng)新互聯(lián)公司專注于麗水網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供麗水營銷型網(wǎng)站建設(shè),麗水網(wǎng)站制作、麗水網(wǎng)頁設(shè)計(jì)、麗水網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造麗水網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供麗水網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
現(xiàn)在如果你想傳遞多個值,如 Java Collection 類型 List、Set、Map 和 Properties,應(yīng)該怎么做呢。為了處理這種情況,Spring 提供了四種類型的集合的配置元素,如下所示:
| 元素 | 描述 |
|---|---|
| 它有助于連線,如注入一列值,允許重復(fù)。 | |
| 它有助于連線一組值,但不能重復(fù)。 | |
| 它可以用來注入名稱-值對的集合,其中名稱和值可以是任何類型。 | |
| 它可以用來注入名稱-值對的集合,其中名稱和值都是字符串類型。 |
你可以使用或來連接任何 java.util.Collection 的實(shí)現(xiàn)或數(shù)組。
你會遇到兩種情況(a)傳遞集合中直接的值(b)傳遞一個 bean 的引用作為集合的元素。
例子
我們在適當(dāng)?shù)奈恢檬褂?Eclipse IDE,然后按照下面的步驟來創(chuàng)建一個 Spring 應(yīng)用程序:
| 步驟 | 描述 |
|---|---|
| 1 | 創(chuàng)建一個名稱為 SpringExample 的項(xiàng)目,并且在創(chuàng)建項(xiàng)目的 src 文件夾中創(chuàng)建一個包 com.tutorialspoint 。 |
| 2 | 使用 Add External JARs 選項(xiàng),添加所需的 Spring 庫,解釋見 Spring Hello World Example 章節(jié)。 option as explained in the chapter. |
| 3 | 在 com.tutorialspoint 包中創(chuàng)建Java類TextEditor、SpellChecker 和 MainApp。 |
| 4 | 在 src 文件夾中創(chuàng)建 Beans 配置文件 Beans.xml。 |
| 5 | 最后一步是創(chuàng)建的所有Java文件和Bean配置文件的內(nèi)容,并運(yùn)行應(yīng)用程序,解釋如下所示。 |
這里是 JavaCollection.java 文件的內(nèi)容:
package com.tutorialspoint;
import java.util.*;
public class JavaCollection {
List addressList;
Set addressSet;
Map addressMap;
Properties addressProp;
// a setter method to set List
public void setAddressList(List addressList) {
this.addressList = addressList;
}
// prints and returns all the elements of the list.
public List getAddressList() {
System.out.println("List Elements :" + addressList);
return addressList;
}
// a setter method to set Set
public void setAddressSet(Set addressSet) {
this.addressSet = addressSet;
}
// prints and returns all the elements of the Set.
public Set getAddressSet() {
System.out.println("Set Elements :" + addressSet);
return addressSet;
}
// a setter method to set Map
public void setAddressMap(Map addressMap) {
this.addressMap = addressMap;
}
// prints and returns all the elements of the Map.
public Map getAddressMap() {
System.out.println("Map Elements :" + addressMap);
return addressMap;
}
// a setter method to set Property
public void setAddressProp(Properties addressProp) {
this.addressProp = addressProp;
}
// prints and returns all the elements of the Property.
public Properties getAddressProp() {
System.out.println("Property Elements :" + addressProp);
return addressProp;
}
}下面是 MainApp.java 文件的內(nèi)容:
package com.tutorialspoint;
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 文件:
INDIA
Pakistan
USA
USA
INDIA
Pakistan
USA
USA
INDIA
Pakistan
USA
USA
一旦你創(chuàng)建源代碼和 bean 配置文件完成后,我們就可以運(yùn)行該應(yīng)用程序。你應(yīng)該注意這里不需要配置文件。如果你的應(yīng)用程序一切都正常,將輸出以下信息:
List Elements :[INDIA, Pakistan, USA, USA]
Set Elements :[INDIA, Pakistan, USA]
Map Elements :{1=INDIA, 2=Pakistan, 3=USA, 4=USA}
Property Elements :{two=Pakistan, one=INDIA, three=USA, four=USA}注入 Bean 引用
下面的 Bean 定義將幫助你理解如何注入 bean 的引用作為集合的元素。甚至你可以將引用和值混合在一起,如下所示:
Pakistan
為了使用上面的 bean 定義,你需要定義 setter 方法,它們應(yīng)該也能夠是用這種方式來處理引用。
注入 null 和空字符串的值
如果你需要傳遞一個空字符串作為值,那么你可以傳遞它,如下所示:
前面的例子相當(dāng)于 Java 代碼:exampleBean.setEmail("")。
如果你需要傳遞一個 NULL 值,那么你可以傳遞它,如下所示:
前面的例子相當(dāng)于 Java 代碼:exampleBean.setEmail(null)。
文章標(biāo)題:創(chuàng)新互聯(lián)Spring教程:Spring注入集合
網(wǎng)站URL:http://www.dlmjj.cn/article/ccedeph.html


咨詢
建站咨詢
