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>
相关推荐
秉承初心5 分钟前
Java 23种设计模式的详细解析
java·设计模式
千码君20169 分钟前
Go语言:记录一下Go语言系统学习的第一天
java·开发语言·学习·golang·gin·并发编程·编译语言
聪明的笨猪猪11 分钟前
Java 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
渣哥17 分钟前
从 READ_UNCOMMITTED 到 SERIALIZABLE:Spring 事务隔离级别全解析
javascript·后端·面试
MrSYJ30 分钟前
学完涨工资的技巧2:Spring Authorization Server如何签发JWTToken
java·spring boot·微服务
珹洺31 分钟前
Java-Spring入门指南(二十六)Android Studio下载与安装
java·spring·android studio
JAVA学习通32 分钟前
JDK高版本特性总结与ZGC实践
java·jvm·算法
Codelinghu32 分钟前
【bug】大模型微调bug:OSError: Failed to load tokenizer.| Lora
后端
Frank_zhou34 分钟前
虚拟线程池
后端
aiopencode35 分钟前
iOS混淆与IPA加固实战手记,如何构建苹果应用防反编译体系
后端