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>
相关推荐
我命由我123456 分钟前
Android 开发中,关于 Gradle 的 distributionUrl 的一些问题
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
橙露7 分钟前
SpringBoot 全局异常处理:优雅封装统一返回格式
java·spring boot·后端
awei091617 分钟前
MinIO配置自定义crossdomain.xml跨域策略(Nginx反向代理实现)
xml·java·nginx
LiveWillChange21 分钟前
第一阶段:基本功能实现
后端
谁怕平生太急28 分钟前
面试题记录:在线数据迁移
java·数据库·spring
朝阳58129 分钟前
rust 交叉编译指南
开发语言·后端·rust
木井巳34 分钟前
【递归算法】组合总和
java·算法·leetcode·决策树·深度优先·剪枝
用户8356290780511 小时前
使用 Python 合并与拆分 Excel 单元格的实用方法
后端·python
thinkingandcoding1 小时前
BTrace实战:Arthas搞不定的那些场景
后端
王码码20351 小时前
Go语言中的配置管理:从Viper到环境变量
后端·golang·go·接口