Spring Ioc —— 集合类型的依赖注入

集合类型

下面示例用到的Java类

java 复制代码
public class Student {
    private String name;
    private int age;
    private String sex;
    private double height;
    private String address;
    private String phone;
    private Date birthday;
    private List<String> hobbies ;
    private List<Teacher> teachers;
    private Map<String, String> maps;
}

public class Teacher {
    private String name;
    private String subject;
}
  • List

    • List<String> List中的元素是简单类型或简单类型的封装类(推荐第一种写法)

      xml 复制代码
      <property name="hobbies">
          <list>
             <value>football</value>
             <value>basketball</value>
          </list>
      </property>
      xml 复制代码
      <property name="hobbies" value="football,basketball" />
    • List<Teacher>List中的元素是对象类型(推荐第一种)

      xml 复制代码
      <!-- 定义具体的Teacher bean -->
      <bean id="teacher1" class="com.hxj.ioc.bean.Teacher">
          <property name="name" value="张老师"/>
          <property name="subject" value="数学"/>
      </bean>
      
      <bean id="teacher2" class="com.hxj.ioc.bean.Teacher">
          <property name="name" value="李老师"/>
          <property name="subject" value="英语"/>
      </bean>
      
      <!-- 学生中调用 -->
      <property name="teachers">
          <list>
              <ref bean="teacher1"/>
              <ref bean="teacher2"/>
          </list>
      </property>
      xml 复制代码
      <property name="teachers">
          <list>
              <bean class="com.hxj.ioc.bean.Teacher">
                  <property name="name" value="张老师"/>
                  <property name="subject" value="数学"/>
              </bean>
              <bean class="com.hxj.ioc.bean.Teacher">
                  <property name="name" value="李老师"/>
                  <property name="subject" value="英语"/>
              </bean>
          </list>
      </property>
  • Set
    如果是Set和上面的List注入方式一样,只是标签改用set

    xml 复制代码
    <property name="teachers">
       <set>
            <ref bean="teacher1"/>
            <ref bean="teacher2"/>
        </set>
    </property>
  • Map

    • 基本的 Map 赋值方式

      xml 复制代码
      <property name="maps">
         <map>
             <entry key="key1" value="value1"/>
             <entry key="key2" value="value2"/>
         </map>
      </property>
    • 使用 key-ref 和 value-ref(适用于引用其他 Bean 作为键或值)

      xml 复制代码
      <property name="maps">
          <map>
              <entry key-ref="someBeanAsKey" value-ref="someBeanAsValue"/>
          </map>
      </property>
    • 使用 properties 标签(适用于简单的键值对),注意:使用 方式时,键和值都必须是 String 类型。

      xml 复制代码
      <property name="maps">
          <props>
              <prop key="key1">value1</prop>
              <prop key="key2">value2</prop>
          </props>
      </property>
相关推荐
mango_mangojuice15 分钟前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
程序员侠客行19 分钟前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
时艰.22 分钟前
Java 并发编程 — 并发容器 + CPU 缓存 + Disruptor
java·开发语言·缓存
Honmaple24 分钟前
QMD (Quarto Markdown) 搭建与使用指南
后端
丶小鱼丶28 分钟前
并发编程之【优雅地结束线程的执行】
java
市场部需要一个软件开发岗位32 分钟前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
忆~遂愿36 分钟前
GE 引擎进阶:依赖图的原子性管理与异构算子协作调度
java·开发语言·人工智能
MZ_ZXD00141 分钟前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
PP东43 分钟前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
ManThink Technology1 小时前
如何使用EBHelper 简化EdgeBus的代码编写?
java·前端·网络