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大模型-小华19 分钟前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
Mark_ZP1 小时前
【锁1】Synchronized vs ReentrantLock区别
java
立心者02 小时前
SpringBoot中使用TOTP实现MFA(多因素认证)
java·spring boot·后端
枕星而眠2 小时前
C++ STL Map容器完全指南:从有序红黑树到无序哈希表
java·开发语言
逃逸线LOF2 小时前
Spring配置数据源{连接池}(Druid、c3p0)
java·数据库·spring
AskHarries2 小时前
SEO 页面怎么生成
后端
爱吃牛肉的大老虎3 小时前
Rust对象之结构体,枚举,特性
开发语言·后端·rust
石榴3 小时前
NestJS 的请求到底经过了什么:装饰器、守卫、拦截器、管道与中间件如何配合
后端
bbq粉刷匠3 小时前
HashMap 底层原理深度拆解(二):putVal 完整链路解析(懒加载 · 链表遍历 · 尾插法)
java·开发语言·哈希算法
Gopher_HBo3 小时前
moby-client客户端
后端