教程 > spring 框架 > 阅读:34

spring 注入集合——迹忆客-ag捕鱼王app官网

我们已经看到了如何使用 value 属性来配置基本数据类型和在你的 bean 配置文件中使用 标签的 ref 属性来配置对象引用。这两种情况下处理奇异值传递给一个 bean。

现在,如果您想传递多个值,例如 java 集合类型,例如 list、set、map 和 properties,该怎么办。 为了处理这种情况,spring 提供了四种类型的集合配置元素,如下所示

序号 元素 描述
1 它有助于连线,如注入一列值,允许重复。
2 它有助于连线一组值,但不能重复。
3 它可以用来注入名称-值对的集合,其中名称和值可以是任何类型。
4 它可以用来注入名称-值对的集合,其中名称和值都是字符串类型。

可以使用 来连接 java.util.collection 的任何实现或数组。

你会遇到两种情况(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 定义将帮助我们了解如何将 bean 引用作为集合元素之一注入。 即使可以将引用和值混合在一起,如以下代码片段所示



   
   
      
      
         
            
            
            pakistan
         
      
      
      
      
         
            
            
            pakistan
         
      
      
      
      
         
      
   

要使用上面的 bean 定义,需要以这样一种方式定义我们的 setter 方法,以便它们也应该能够处理引用。


注入 null 和空字符串值

如果需要将空字符串作为值传递,则可以按如下方式传递


   

前面的示例等价于 java 代码:examplebean.setemail("")

如果你需要传递一个null值,可以使用如下方式进行传递


   

前面的示例等价于 java 代码:examplebean.setemail(null)

查看笔记

扫码一下
查看教程更方便
网站地图