5种"集合"注入方式

2020-02-27  本文已影响0人  煗NUAN

五种"集合"的注入方式

编写集合的汇总类 : Collection.java

public class Collection {
    private String[] arrays;
    private List<Object> list;
    private Set<String> set;
    private Map<String,String> map;
    private Properties properties;

    public String[] getArrays() {
        return arrays;
    }

    public void setArrays(String[] arrays) {
        this.arrays = arrays;
    }

    public List<Object> getList() {
        return list;
    }

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

    public Set<String> getSet() {
        return set;
    }

    public void setSet(Set<String> set) {
        this.set = set;
    }

    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }

    public Properties getProperties() {
        return properties;
    }

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

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("Collection{");
        sb.append("arrays=").append(arrays == null ? "null" : Arrays.asList(arrays).toString());
        sb.append(", list=").append(list);
        sb.append(", set=").append(set);
        sb.append(", map=").append(map);
        sb.append(", properties=").append(properties);
        sb.append('}');
        return sb.toString();
    }
}

集合注入的配置文件 : coll.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="stu" class="com.yanm.bean.Student">
        <property name="sid" value="007" />  <!--0开头默认是八进制-->
        <property name="name" value="张三" />
        <property name="score" value="98" />
        <property name="sex" value="false" />
        <property name="age" value="18" />
    </bean>
    
    <bean id="coll" class="com.yanm.collection.Collection" >

        <!--数组的注入-->
        <property name="arrays">  <!--name属性是arrays-->
            <array>         <!--数组注入需要用到arrays标签包裹-->
                <value>刘备</value>
                <value>刘备</value>   <!--数组内容可以重复-->
                <value>关羽</value>
                <value>张飞</value>
                <value>赵云</value>
            </array>
        </property>

        <!--list集合的注入-->
        <property name="list">  <!--name属性是list-->
            <list>          <!--list集合注入需要用到list标签包裹-->
                <value>刘备</value>
                <value>刘备</value>  <!--list集合内容可以重复-->
                <value>关羽</value>
                <ref bean="stu" />  <!--list集合存储对象时,用ref-->
            </list>
        </property>

        <!--set集合的注入-->
        <property name="set">   <!--name属性是set-->
            <set>        <!--set集合注入需要用到set标签包裹-->
                <value>刘备</value>
                <value>刘备</value>   <!--set集合不能存储重复的内容-->
                <value>张飞</value>
                <value>赵云</value>
            </set>
        </property>

        <!--map集合的注入-->
        <property name="map">    <!--name属性是map-->
            <map>           <!--map集合注入需要用到map标签包裹-->
                    <!--map集合注入时,采用entry标签的key和value形式-->
                <entry key="刘备" value="孙尚香" />
                <entry key="刘备" value="小乔" />  <!--覆盖孙尚香-->
                <entry key="赵云" value="大乔" />  
                <entry key="null" value="null" />  <!--map可以存储null值-->
            </map>
        </property>

        <!--properties的注入-->
        <property name="properties">    <!--name属性是properties-->
            <props>         <!--properties注入需要用到props标签包裹-->
                <prop key="url">jdbc:mariadb://localhost:3306/shop</prop>
                <prop key="driver">org.mariadb.jdbc.Driver</prop>
                <prop key="uname">root</prop>
                <prop key="passwd">root</prop>
            </props>
        </property>
    </bean>
    
</beans>

单元测试 : CollectionTest.java

public class CollectionTest {

    @Test
    public void collTest(){
        ApplicationContext ac=new ClassPathXmlApplicationContext("coll/coll.xml");
        Collection collection=ac.getBean("coll",Collection.class);
        System.out.println(collection);
    }
}
上一篇下一篇

猜你喜欢

热点阅读