Spring 从零開始-03

本文深入探讨了Spring框架中Bean的装配方式,包括List、Set、Map和Properties的使用,并通过示例代码进行说明。

这里说说bean装配集合。spring的支持的集合元素,其基本使用方式如同与Java的集合,所以假设对Java的集合不太了解的能够先找个帖子好好学习一下, 时间关系这里就不说了。

~~
list的样例

public interface Instrument {
    void play();
}
public class Guitar implements Instrument {

    @Override
    public void play() {
        // TODO Auto-generated method stub
        System.out.println("dang dang dang");
    }

}
public class Piano implements Instrument{

    @Override
    public void play() {
        // TODO Auto-generated method stub
        System.out.println("ding ding ding");
    }

}
public class Saxophone implements Instrument{

    @Override
    public void play() {
        // TODO Auto-generated method stub
        System.out.println("wu wu wu ");
    }

}
public class Band {
    private Collection<Instrument> instrument;

    public Collection<Instrument> getInstrument() {
        return instrument;
    }

    public void setInstrument(Collection<Instrument> instrument) {
        this.instrument = instrument;
    }

    public void play(){
        for(Instrument ins:instrument)
            ins.play();
    }
}
public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext ac = new ClassPathXmlApplicationContext("blog3/bean.xml");
        Band band = (Band) ac.getBean("band");
        band.play();
    }

}
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="band" class="blog3.Band">
        <property name="instrument">
            <list>
                <ref bean="guitar"/>
                <ref bean="piano"/>
                <ref bean="saxophone"/>             
            </list>
        </property>
    </bean>

    <bean id="guitar" class="blog3.Guitar"/>
    <bean id="piano" class="blog3.Piano"/>
    <bean id="saxophone" class="blog3.Saxophone"/>

set和list使用方式一致。把list换成set就好了,主要是set中元素不能反复。另外多说一点,为了解耦Spring推荐使用基于接口的编程方式。

另外数组也是使用这样的装配方式。


map

<bean id="bandmap" class="blog3.Band">
        <property name="mapIns">
            <map>
                <entry key="GUITAR" value-ref="guitar"/>
                <entry key="PINAO" value-ref="piano"/>
                <entry key="SAXOPHONE" value-ref="saxophone"/>
            </map>
        </property>
    </bean>
public class Band {
    private Collection<Instrument> instrument;
    private Map<String, Instrument> mapIns;

    public Map<String, Instrument> getMapIns() {
        return mapIns;
    }

    public void setMapIns(Map<String, Instrument> mapIns) {
        this.mapIns = mapIns;
    }

    public Collection<Instrument> getInstrument() {
        return instrument;
    }

    public void setInstrument(Collection<Instrument> instrument) {
        this.instrument = instrument;
    }

    public void play(){
        for(Instrument ins:instrument)
            ins.play();
    }

    public void mapPlay(){
        for(String key:mapIns.keySet()){
            System.out.println(key);
            Instrument tmp = mapIns.get(key);
            tmp.play();
        }

    }
}
public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext ac = new ClassPathXmlApplicationContext("blog3/bean.xml");
//      Band band = (Band) ac.getBean("band");
//      band.play();

        Band band2 = (Band) ac.getBean("bandmap");
        band2.mapPlay();
    }

properties装配,对照与map,properties的key和value仅仅能是string类型。其余都差点儿相同
好了,差点儿相同了。上代码吧。
http://download.youkuaiyun.com/detail/wsrspirit/8868347

转载于:https://www.cnblogs.com/bhlsheji/p/5355402.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值