Spring注入集合

我们还可以在 Bean 标签下的 元素中,使用以下元素配置 Java 集合类型的属性和参数,例如 List、Set、Map 以及 Properties 等。
image.png

示例 1:在集合中设置普通类型的值

下面我们通过一个实例,演示下如何注入集合类型的属性和参数。

1. 参考《[第一个 Spring 程序]》,新建一个名为 my-spring-demo4 的 Java 项目。

2. 在 net.biancheng.c 包下,创建一个名为 JavaCollection 的类,代码如下。


1.  package net.biancheng.c;

3.  import java.util.Arrays;
4.  import java.util.List;
5.  import java.util.Map;
6.  import java.util.Set;

8.  public class  JavaCollection {
9.  //1 数组类型属性
10.  private String[] courses;
11.  //2 list 集合类型属性
12.  private List  list;
13.  //3 map 集合类型属性
14.  private Map

2. 在 src 目录下创建 Spring 配置文件 Beans.xml,配置如下。

1.  

3. 在 net.biancheng.c 包下,创建一个名为 MainApp 的类,代码如下。


1.  package net.biancheng.c;

3.  import org.apache.commons.logging.Log;
4.  import org.apache.commons.logging.LogFactory;
5.  import org.springframework.context.ApplicationContext;
6.  import org.springframework.context.support.ClassPathXmlApplicationContext;

8.  public class  MainApp {
9.  private static final Log  LOGGER = LogFactory.getLog(MainApp.class);

11.  public static void main(String[] args) {
12.  //获取 ApplicationContext 容器
13.  ApplicationContext  context = new ClassPathXmlApplicationContext("Beans.xml");
14.  //获取名为 employee 的 Bean
15.  JavaCollection  javaCollection = context.getBean("javaCollection", JavaCollection.class);
16.  //通过日志打印员工信息
17.  LOGGER.info(javaCollection.toString());
18.  }
19.  }

4. 运行 MainApp 类中的 main() 方法,控制台输出如下。

十二月 17, 2021 4:56:01 下午 net.biancheng.c.MainApp main
信息: JavaCollection{courses=[Java, PHP, C 语言], list=[张三, 李四, 王五, 赵六], maps={JAVA=java, PHP=php}, sets=[MySQL, Redis]}

示例 2:在集合中设置对象类型的值

在上面的示例中,都是在集合中通过 value 属性设置的普通类型的值,我们还可以通过 ref 属性在注入到 Bean 的集合中设置对象类型的值。

1. 在 my-spring-demo4 项目的 net.biancheng.c 包中,创建一个名为 Course 的类,代码如下。


1.  package net.biancheng.c;

3.  import org.apache.commons.logging.Log;
4.  import org.apache.commons.logging.LogFactory;

6.  public class  Course {
7.  private static final Log  LOGGER = LogFactory.getLog(Course.class);
8.  //课程编号
9.  private Integer  courseId;
10.  //课程名称
11.  private String  courseName;

13.  public void setCourseId(Integer  courseId) {
14.  this.courseId = courseId;
15.  }

17.  public void setCourseName(String  courseName) {
18.  this.courseName = courseName;
19.  }

21.  @Override
22.  public String  toString() {
23.  return "Course{" +
24.  "courseId=" + courseId +
25.  ", courseName='" + courseName + '\'' +
26.  '}';
27.  }
28.  }

2. 将 JavaCollection 中的代码修改成以下形式。


1.  package net.biancheng.c;

3.  import java.util.Arrays;
4.  import java.util.List;
5.  import java.util.Map;
6.  import java.util.Set;

8.  public class  JavaCollection {
9.  //1 数组类型属性
10.  private Course[] courses;
11.  //2 list 集合类型属性
12.  private List  list;
13.  //3 map 集合类型属性
14.  private Map

3. 将 Beans.xml 中配置修改成以下内容。

1.  

4. 运行 MainApp 类中的 main() 方法,控制台输出如下。

十二月 17, 2021 5:20:04 下午 net.biancheng.c.MainApp main
信息: JavaCollection{courses=[Course{courseId=1, courseName='Java课程'}, Course{courseId=2, courseName='PHP课程'}, Course{courseId=3, courseName='C语言课程'}], list=[张三, 李四, 王五, 赵六], maps={JAVA=java, PHP=php}, sets=[MySQL, Redis]}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值