• Spring 从零開始-03


    这里说说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.csdn.net/detail/wsrspirit/8868347

  • 相关阅读:
    运行python脚本后台执行(转载)
    双积分式(A/D)转换器电路结构及工作原理
    SAR ADC简介
    [hdu-6395]Sequence 分块+矩阵快速幂
    [hdu-1272]小希的迷宫 并查集
    redhat7.2安全基线BI
    Oracle 12c RAC
    .gitlab-ci.yml简介
    gitlab
    Centos 7 Docker安装配置
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5355402.html
Copyright © 2020-2023  润新知