这里说说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

Spring 从零開始-03的更多相关文章

  1. Spring 从零開始-05

    最终能到Spring的AOP编程了,AOP的概念特别的多.所以须要你在開始之前有点了解,然后通过代码慢慢学习! - 切面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象.事务管 ...

  2. 从零開始学习OpenCL开发(一)架构

    多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012 本文将作为我<从零開始做OpenCL开发>系列文章的 ...

  3. 从零開始学Swift之Hello World进化版

    上节课,也就是昨晚啦,我们学习到从零開始学Swift之Hello World.那一节仅仅有一句代码,大家会认为不够过瘾. 那么这节课,就给大家来多点瘾货吧! 先上图! //var 代表变量的类型, s ...

  4. 关东升的《从零開始学Swift》即将出版

    大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...

  5. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

  6. Bmob移动后端云服务平台--Android从零開始--(二)android高速入门

    Bmob移动后端云服务平台--Android从零開始--(二)android高速入门 上一篇博文我们简介何为Bmob移动后端服务平台,以及其相关功能和优势. 本文将利用Bmob高速实现简单样例,进一步 ...

  7. 从零開始怎么写android native service?

    从零開始怎么写android native service Android service对于从事android开发的人都不是一个陌生的东西,非常多人可能会认为服务非常easy. 服务是简单,由于复杂 ...

  8. Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob

    Bmob移动后端云服务平台--Android从零開始--(一)何为Bmob 在正式的项目开发中,单client不能满足我们的需求,须要实现client与服务端的连接. 而在编写Android服务端代码 ...

  9. 《PHP 5.5从零開始学(视频教学版)》内容简单介绍、文件夹

    <PHP 5.5从零開始学(视频教学版)>当当网购买地址: http://product.dangdang.com/23586810.html <PHP 5.5从零開始学(视频教学版 ...

随机推荐

  1. hdu4745Two Rabbits(dp)

    链接 哎..比赛中一下想到了公共子序 之后思维就被局限了 一直在这附近徘徊 想着怎么优化 怎么预处理.. 观看了众多神牛的代码 ..以前觉得自己能写出个记忆化的最长回文长度 还挺高兴的...现在觉得好 ...

  2. jquery 图片放大

    上一篇是关于手风琴效果的,但是有时候我们需要放大的图片大小不规律,想要在屏幕中间显示大图. 图片放大可以做为单独的效果,也可以和其他的效果结合起来.比如Demo 里的Demo5.html是以图片无缝切 ...

  3. POJ 2135 Farm Tour(最小费用最大流,变形)

    题意:给一个无向图,FJ要从1号点出发到达n号点,再返回到1号点,但是路一旦走过了就会销毁(即回去不能经过),每条路长度不同,那么完成这趟旅行要走多长的路?(注:会有重边,点号无序,无向图!) 思路: ...

  4. Flask

    #environ:一个包含所有HTTP请求信息的dict对象 #start_response:一个发送HTTP响应的函数 def application(environ, start_response ...

  5. html的视频插件 (转)

         1)jMedia Element是一个基于jQuery/jQuery UI实现的HTML5音频/视频开发工具包.提供非常多的功能来控制页面中的音频和视频内容.当旧的浏览器不兼容HTML5时, ...

  6. Logminer实战

    相信许多DBA同学都曾遇到过这种情况,由于各种各样的原因,必须对数据库做不完全恢复:但又不确定应该恢复到哪个时间点或SCN才合适,因而反复的执行不完全恢复,悲剧掉了一地,中枪的有木有?温馨提示下,在生 ...

  7. Windows 之间用rsync同步数据(cwRsyncServer配置)

    rsync是一款优秀的数据同步软件,在跨服务器,跨机房,跨国备份服务器的首选工具,下面就来介绍下如何配置安装cwRsyncServer很大多数软件一样是B/C架构,cwRsyncServer是rsyn ...

  8. Hibernate之QBC检索和本地SQL检索

    QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口 本地SQL查询来完善HQL ...

  9. 经典SQL语句大全_主外键_约束

    一.基础(建表.建约束.关系) 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整 ...

  10. JS中图片的放大缩小没反应

    这段代码无反应: 代码如下: <script type="text/javascript"> onload = function () { document.getEl ...