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)

posted @   青岑  阅读(375)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示
主题色彩