zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5355402.html
Copyright © 2011-2022 走看看