spring依赖注入 集合<list>与<map>属性的注入

spring中和属性的依赖注入

  • list集合属性的依赖注入
  • map集合属性的依赖注入

在spring中可以通过一组内置的xml标签来配置集合属性

list集合属性的依赖注入

  • 创建Car类,有brand(品牌),crop(厂商),price(价格)三个属性
  • 创建PersonList类,有name和Car(Object)两个属性
  • 创建spring-di.xml配置文件,在配置文件中已经创建好了car car2 car3三个car对象
  • 配置一个PersonList
<bean id="personList" class="edu.Spring.di.PersonList">
        <property name="name" value="Tom"/>
        <property name="cars">
            <!--使用配置文件中已有的Car对象去构造一个集合-->
            <list>
                <ref bean="car"/>
                <ref bean="car2"/>
                <ref bean="car3"/>
            </list>
        </property>
    </bean>

这里就是使用了标签中的 双标签 中的,在标签中声明一个集合bean

创建一个junit进行测试打印personlist对象

spring依赖注入 集合<list>与<map>属性的注入_第1张图片

map集合属性的依赖注入

在Java中集合存放一系列key-value键值对

当实体类的属性中存在一个map类型的属性值时,进行依赖注入

  • 创建一个实体类PersonMap,给出相应的get和set方法并且重写toString
public class PersonMap {
    private String name;
    private Map<String,Car> cars;
  • 在spring-di.xml中进行配置
    第一种方式:使用内部bean直接在map标签中进行集合bean的配置
    第二种方式:先在xml文件中创建一个集合bean,就可以直接ref引用这个map类型的集合bean

  • 这里使用第二种方式
    需要在xml头文件中声明util标签库

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util-4.0.xsd
">

然后就可以使用util标签来创建一个随时可以引用的集合类型的bean

<util:map id="carMapBean">
        <entry key="AA" value-ref="car"/>
        <entry key="BB" value-ref="car2"/>
        <entry key="CC" value-ref="car3"/>
    </util:map>
  • 在map标签中就可以直接使用ref进行bean的引用配置
<bean id="personMap" class="edu.Spring.di.PersonMap">
        <!--set方法注入-->
        <property name="name" value="老王"/>
        <!--使用集合bean来注入(引入)-->
        <property name="cars" ref="carMapBean"/>
    </bean>

编写测试Junit进行打印测试

spring依赖注入 集合<list>与<map>属性的注入_第2张图片

你可能感兴趣的:(Spring,#笔记,spring,java,bean)