002——第一个Spring程序

定义一个Performer接口

package com.java.spring;

public interface Performer {

	public void perform();
	
}
定义一个杂技师类(Juggler)实现Performer接口

package com.java.spring;

public class Juggler implements Performer {

	private int beanBags = 3;

	public Juggler() {
	}

	public Juggler(int beanBags) {
		this.beanBags = beanBags;
	}

	public void perform() {
		System.out.println("JUGGLING " + beanBags + " BEANBAGS");
	}

}
定义一个Duke(排练者)类
package com.java.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Duke {

	public static void main(String[] args) {
		ApplicationContext  ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		Performer performer = (Performer) ctx.getBean("duke");
		performer.perform();
	}
	
}
配置文件

<!-- 采用默认构造方法
<bean id="duke" class="com.java.spring.Juggler"/>
-->
当Spring加载该Bean时,Spring将使用默认的构造器来实例化duke Bean。实际上,duke会使用如下代码来创建:new com.java.spring.Juggler();

通过构造器注入

表演者应该会多种技能

定义一个PoeticJuggler继承Juggler

package com.java.spring;

public class PoeticJuggler extends Juggler {

	private Poem poem;

	public PoeticJuggler(Poem poem) {
		this.poem = poem;
	}
 
	public PoeticJuggler(int beanBags, Poem poem) {
		super(beanBags);
		this.poem = poem;
	}
	
	public void perform() {
		super.perform();
		System.out.println("While recting......");
		poem.recite();
	}
}
定义一个接口Poem

package com.java.spring;

public interface Poem {

	public void recite();
	
}
定义一个Sonnet29实现接口Poem

package com.java.spring;

public class Sonnet29 implements Poem {

	public static String[] LINES = {"昨夜星辰昨夜风,画楼西畔桂堂东。", "身无彩凤双飞翼,心有灵犀一点通。",
									"隔座送钩春酒暖,分曹射覆蜡灯红。", "嗟余听鼓应官去,走马兰台类转蓬。"};
	
	
	public Sonnet29() {
	}

	public void recite() {
		for(String LINE : LINES) {
			System.out.println(LINE);
		}
	}

}
配置文件:

<bean id="sonnet29" class="com.java.spring.Sonnet29" />
   	<bean id="poeticDuke" class="com.java.spring.PoeticJuggler">
   		<constructor-arg value="15" />
   		<constructor-arg ref="sonnet29" />
<span style="white-space:pre">		</span><!-- ref将id为sonnet29的Bean引用传递给构造器 -->
   	</bean>
Duke不仅是以为杂技师,还是以为诗人

package com.java.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Duke {

	public static void main(String[] args) {		
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		PoeticJuggler poet = (PoeticJuggler) ctx.getBean("poeticDuke");
		poet.perform();
	}
	
}









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值