spring属性注入 —— 复杂类型注入

Posted 你所学的知识,就是你持有的武器

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring属性注入 —— 复杂类型注入相关的知识,希望对你有一定的参考价值。

实体

package cn.itcast.injection;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Properties;


public class CollectionBean {
    
    private Object[] arr;
    private List list;
    private Map map;
    private Properties prop;
    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 getProp() {
        return prop;
    }
    public void setProp(Properties prop) {
        this.prop = prop;
    }
    @Override
    public String toString() {
        return "CollectionBean [arr=" + Arrays.toString(arr) + ", list=" + list + ", map=" + map + ", prop=" + prop
                + "]";
    }
}

 

xml配置

<!-- ============复杂类型注入================== -->
    
    <!-- array注入 -->
    <bean name="cb" class="cn.itcast.injection.CollectionBean">
         <!--如果数组中只准备注入一个值或者对象,直接使用value或者ref即可 -->
        <!--  <property name="arr" value="tom"></property> -->
        
        <!-- array注入 -->
        <property name="arr">
            <array>
                <value>tom</value>
                <value>tom</value>
                <ref bean="user4"/>
            </array>
        </property>
        
         <!--如果list中只准备注入一个值或者对象,直接使用value或者ref即可 -->
        <!--  <property name="list" value="jack"></property> -->
        
        <!-- List 注入 -->
        <property name="list">
            <list>
                <value>tom</value>
                <value>tom</value>
                <ref bean="user3"/>
            </list>
        </property>
        
        <!--map类型注入 -->
        <property name="map">
            <map>
                <entry key="url" value="jdbc:mysql"></entry>
                <entry key="user" value="user3"></entry>
            </map>
        </property>
        
        <!-- properties类型注入 -->
        <property name="prop">
            <props>
                <prop key="username"> root </prop>
                <prop key="password"> 123 </prop>
            </props>
        </property>

 

demo例子

public class Demo {
    @Test
    public void test1(){
        //1、创建容器对象
        ApplicationContext ac =new ClassPathXmlApplicationContext("cn/itcast/injection/applicationContext.xml");
        //2、像容器要User对象
        CollectionBean cb = (CollectionBean)ac.getBean("cb");
        //3、打印user对象
        System.out.println(cb.toString());
    }
}

 

结果:

1592657406(1)

以上是关于spring属性注入 —— 复杂类型注入的主要内容,如果未能解决你的问题,请参考以下文章

spring IOC容器中装配Bean(XML)

spring使用DataSoure注入参数时报No supported DataSource type found

spring自动注入的三种方式

编码剖析Spring装配基本属性的原理

JAVA框架--hibernatestruts2spring

DedeCMS另一处全版本通杀SQL注入(无限制)