스프링 제로 부터. - 03.

여기 서 bean 조립 집합, spring 이 지원 하 는 집합 요 소 를 말 합 니 다. 기본 적 인 사용 방식 은 자바 와 의 집합 과 같 기 때문에 자바 의 집합 에 대해 잘 모 르 는 것 은 먼저 댓 글 을 찾 아 열심히 공부 할 수 있 습 니 다. 시간 관 계 는 여기 서 말 하지 않 겠 습 니 다.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 에서 요 소 를 중복 할 수 없습니다.또 한 가지 더 말씀 드 리 지만, 결합 을 풀기 위해 서 는 인터페이스 기반 프로 그래 밍 방식 을 추천 합 니 다.또 배열 도 이런 조립 방식 을 사용한다.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.csdn.net/detail/wsrspirit/8868347

좋은 웹페이지 즐겨찾기