Loading

spring set注入-Map、Properties、List、Set注入

举例说明:

Person类

public class Person {
    //  注入List集合
    private List<String> names;
    //  注入Set集合
    private Set<String> addrs;

    //  注入Map集合,多个电话
    private Map<Integer, String> phones;

    //  注入属性类对象
    //  Properties本质上也是一个Map集合
    //  Properties的父类Hashtable,Hashtable实现了Map接口。
    // 虽然这个也是一个Map集合,但是和Map的注入方式有点像,但是不同。
    //  Properties的key和value只能是String类型。
    private Properties properties;

    @Override
    public String toString() {
        return "Person{" +
                "names=" + names +
                ", addrs=" + addrs +
                ", phones=" + phones +
                ", properties=" + properties +
                '}';
    }

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

    public void setPhones(Map<Integer, String> phones) {
        this.phones = phones;
    }

    public void setNames(List<String> names) {
        this.names = names;
    }

    public void setAddrs(Set<String> addrs) {
        this.addrs = addrs;
    }
}

配置文件spring-collection.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="personBean" class="per.sxhzs.spring6.bean.Person">
        <property name="properties">
            <!--注入Properties属性类对象-->
            <props>
                <prop key="driver">com.mysql.cj.jdbc.Driver</prop>
                <prop key="url">jdbc:mysql://localhost:3306/spring6</prop>
                <prop key="username">root</prop>
                <prop key="password">200229</prop>
            </props>
        </property>

        <property name="phones">
            <!--注入Map集合-->
            <map>
                <!--如果key和value不是简单类型就用这个配置-->
                <!--<entry key-ref="" value-ref=""/>-->

                <!--如果是简单类型就是key和value-->
                <entry key="1" value="110"/>
                <entry key="2" value="120"/>
                <entry key="3" value="119"/>
                <entry key="4" value="122"/>
            </map>
        </property>

        <property name="names">
            <!--List集合有序可重复-->
            <list>
                <value>张三</value>
                <value>李四</value>
                <value>王五</value>
                <value>张三</value>
                <value>张三</value>
            </list>
        </property>

        <property name="addrs">
            <!--set集合无序不可重复-->
            <set>
                <value>北京大兴区</value>
                <value>北京海淀区</value>
                <value>北京大兴区</value>
            </set>
        </property>
    </bean>
</beans>

测试类

@Test
    public void testCollection() {

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-collection.xml");
        Person personBean = applicationContext.getBean("personBean", Person.class);
        System.out.println(personBean);
    }

运行效果图

posted @ 2022-11-13 11:02  过情关  阅读(368)  评论(0)    收藏  举报