Spring复杂类型的注入

1.数组

ß测试类à

@Test

public voidfun1(){
     ApplicationContext ac = newClassPathXmlApplicationContext("cn/hd/injection/applicationContext.xml");
     CollectionBean collectionBean =(CollectionBean) ac.getBean("collectionBean");
     Object [] arr =collectionBean.getArr();
     for (Object o : arr) {
         System.out.println(o);
     }

 

ß配置文件à

<beanname="collectionBean"class="cn.hd.injection.CollectionBean">
    <!--如果数组中只有一个元素,和基本类型的配置一样-->
   <!--<propertyname="arr" value="1"></property>-->
    <!--如果数组中不只一个元素时,用array标签包裹去写

-->
    <property name="arr">
        <array>
            <value>张三</value>
            <value>李四</value>
            <refbean="car"></ref>
        </array>
    </property>
</bean>

2、List/set

@Test

public voidfun2(){
    ApplicationContext ac = new ClassPathXmlApplicationContext("cn/hd/injection/applicationContext.xml");
    CollectionBean collectionBean =(CollectionBean) ac.getBean("collectionBean");
    List list = collectionBean.getList();
    for (Object o : list) {
        System.out.println(o);
    }
}

 

<!--List集合中只有一个元素配置个基本类型的配置一样-->

<!--<propertyname="list" value="1" ></property>-->
<!--如果数组中不只一个元素时,用array标签包裹去写-->
<property name="list">
    <list>
        <value>张二</value>
        <value>李四</value>
        <ref bean="car"></ref>
    </list>
</property>

3、Map

       键值对       key        key-ref value value-ref     Map<K,V>

       <property name="map">

       <map>
        <entry key="name"value="杨东辉"></entry>
        <entry key="user"value-ref="user2"></entry>
        <!--<entrykey-ref=""></entry>-->
    </map>
</property>

 

@Test

public voidfun3(){
    ApplicationContext ac = newClassPathXmlApplicationContext("cn/hd/injection/applicationContext.xml");
    CollectionBean collectionBean =(CollectionBean) ac.getBean("collectionBean");
    Map map = collectionBean.getMap();
    String name = (String)map.get("name");
    System.out.println(name);
   User user = (User)map.get("user");
    System.out.println(user);
}

 

4、properties

<propertyname="properties">

       <props>
        <propkey="driverClass">com.</prop>
        <propkey="jdbcUrl">jdbc://localhost:3306</prop>
        <propkey="user">root</prop>
    </props>
</property>

 

@Test

public voidfun4(){
    ApplicationContext ac = newClassPathXmlApplicationContext("cn/hd/injection/applicationContext.xml");
    CollectionBean collectionBean =(CollectionBean) ac.getBean("collectionBean");
    Properties properties =collectionBean.getProperties();
    String driverClass = (String)properties.get("driverClass");
    System.out.println(driverClass);
    String jdbcUrl = (String)properties.get("jdbcUrl");
    System.out.println(jdbcUrl);
    String user = (String)properties.get("user");
    System.out.println(user);
}

 

packagecn.hd.injection;

importjava.util.List;
import java.util.Map;
import java.util.Properties;
/*复杂注入*/
public class CollectionBean {
    private Object [] arr;
    private List list;
    private Map map;
    private Properties properties;

    public Object[] getArr() {
        return arr;
   }

    public void setArr(Object[] arr) {
        this.arr = arr;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

    public Map getMap() {
        return map;
    }

   public void setMap(Map map) {
        this.map = map;
    }

    public Properties getProperties() {
        return properties;
    }

    public void setProperties(Propertiesproperties) {
        this.properties = properties;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值