- Spring DI 教程
- Spring DI - 首頁
- Spring DI - 概述
- Spring DI - 環境搭建
- Spring DI - IOC容器
- Spring 依賴注入
- Spring DI - 建立專案
- 基於構造器的注入示例
- Spring DI - 基於構造器的注入
- Spring DI - 內部Bean構造器注入
- Spring DI - 集合構造器注入
- Spring DI - 集合引用構造器注入
- Spring DI - Map構造器注入
- Spring DI - Map引用構造器注入
- 基於Setter的注入示例
- Spring DI - 基於Setter的注入
- Spring DI - 內部Bean Setter注入
- Spring DI - 集合Setter注入
- Spring DI - 集合引用Setter注入
- Spring DI - Map Setter(對映Setter)
- Spring DI - Map引用Setter注入
- 自動裝配示例
- Spring DI - 自動裝配
- Spring DI - 按名稱自動裝配
- Spring DI - 按型別自動裝配
- Spring DI - 構造器自動裝配
- 工廠方法
- Spring DI - 靜態工廠
- Spring DI - 非靜態工廠
- Spring DI 有用資源
- Spring DI - 快速指南
- Spring DI - 有用資源
- Spring DI - 討論
Spring DI - Map Setter(對映Setter)
您已經瞭解瞭如何在Bean配置檔案中使用<property>標籤的value屬性配置基本資料型別,以及使用ref屬性配置物件引用。這兩種情況都處理的是向Bean傳遞單個值。
現在,如果您想傳遞Map怎麼辦?在這個例子中,我們將展示使用setter注入傳遞Map的直接值。
示例
以下示例顯示了一個名為JavaCollection的類,它使用setter方法注入集合作為依賴項。
讓我們更新在Spring DI - 建立專案章節中建立的專案。我們將新增以下檔案:
JavaCollection.java - 包含集合作為依賴項的類。
MainApp.java - 用於執行和測試的主應用程式。
以下是JavaCollection.java檔案的內容:
package com.tutorialspoint;
import java.util.*;
public class JavaCollection {
Map<String, String> addressMap;
public JavaCollection() {}
public JavaCollection(Map<String, String> addressMap) {
this.addressMap = addressMap;
}
// a setter method to set Map
public void setAddressMap(Map<String, String> addressMap) {
this.addressMap = addressMap;
}
// prints and returns all the elements of the Map.
public Map<String, String> getAddressMap() {
System.out.println("Map Elements :" + addressMap);
return addressMap;
}
}
以下是MainApp.java檔案的內容:
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("applicationcontext.xml");
JavaCollection jc=(JavaCollection)context.getBean("javaCollection");
jc.getAddressMap();
}
}
以下是包含所有型別集合配置的配置檔案applicationcontext.xml:
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id = "javaCollection" class = "com.tutorialspoint.JavaCollection">
<property name = "addressMap">
<map>
<entry key = "1" value = "INDIA"/>
<entry key = "2" value = "JAPAN"/>
<entry key = "3" value = "USA"/>
<entry key = "4" value = "UK"/>
</map>
</property>
</bean>
</beans>
輸出
建立原始檔和Bean配置檔案後,讓我們執行應用程式。如果您的應用程式一切正常,它將列印以下訊息:
Map Elements :{1=INDIA, 2=JAPAN, 3=USA, 4=UK}
廣告