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>
相关推荐
铁蛋AI编程实战20 小时前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
晚霞的不甘20 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
SunnyDays101120 小时前
使用 Java 冻结 Excel 行和列:完整指南
java·冻结excel行和列
喵叔哟21 小时前
06-ASPNETCore-WebAPI开发
服务器·后端·c#
摇滚侠21 小时前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea
云姜.21 小时前
java多态
java·开发语言·c++
李堇21 小时前
android滚动列表VerticalRollingTextView
android·java
泉-java21 小时前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
Charlie_lll21 小时前
力扣解题-移动零
后端·算法·leetcode
寄存器漫游者1 天前
Linux 软件编程 - IO 编程
linux·运维·spring