一个简单的Spring例子:郑阿奇《Java EE 实用教程》

这两天看郑阿奇主编的一本书《Java EE 实用教程》的Spring章节,依照书上的例子比葫芦画瓢写一个程序, 一个例子居然弄了两天才算运行成功,期间运行时错误频出,每次都要上网找好久的答案。有有感于此,故把写好的代码放在此处,希望对大家有所帮助。

运行环境: JDK版本:1.6
Eclipse版本:GALILEO
Spring版本:spring-framework-3.0.5.RELEASE

步骤:

新建一个Java Project,名称为Spring_DI,为其添加Spring核心类库,添加commons-logging-1.1.1.jar。

创建包“org.interface”,在该包中新建Person接口,代码如下:

package org.interfaces;
//定义person接口
public interface Person {
//接口中定义一个吃食物的方法
public void eatFood();
}


继续在该包中定义Food接口,代码如下:

package org.interfaces;
//定义Food接口
public interface Food {
//在接口中定义一个吃的方法,返回吃东西
public String eat();
}


创建包“org.interfaces.impl”,在该包中定义Person的实现类Man,代码如下:

package org.interfaces.impl;
import org.interfaces.Food;
import org.interfaces.Person;

//person 接口的具体实现类
public class Man implements Person {

//定义Food接口私有属性,面向Food接口编程,而不是具体实现类。
private Food food;

//构建setter方法
public void setFood(Food food){
this.food=food;
}
//实现Person接口eatFood方法
public void eatFood(){
System.out.println(food.eat());
}
}


定义Food的一个实现类Apple,代码如下:

package org.interfaces.impl;

import org.interfaces.Food;

public class Apple implements Food {

public String eat(){
return "正在吃苹果……";
}
}


定义Food的一个实现类Orange,代码如下:

package org.interfaces.impl;

import org.interfaces.Food;

public class Orange implements Food {

public String eat(){
return "正在吃橘子……";
}
}


在项目文件夹下编写Spring的配置文件config.xml,使用Spring的配置文件将Person实例和Food实例组织在一起,配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<!--定义一个bean,该bean的id是man,class指定该bean实例的实现类。 -->
<bean id="man" class="org.interfaces.impl.Man">
<property name="food">
<ref local="apple"/>
</property>
</bean>

<!-- 定义apple bean,Food接口的实现类 -->
<bean id="apple" class="org.interfaces.impl.Apple"></bean>
<bean id="orange" class="org.interfaces.impl.Orange"></bean>
</beans>


下面就可以编写测试类了,代码如下:

package org.test;
import org.interfaces.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class Test {

public static void main(String[] args) {

//创建Application对象,参数为配置文件放置的位置
ApplicationContext context=
new FileSystemXmlApplicationContext("config.xml");
//通过Person bean的id来获取bean实例,面向接口编程,因此此处强制类型转换为
//接口类型
Person p=(Person)context.getBean("man");
p.eatFood();
}
}


运行主程序,输出结果显示如下:
[img]http://dl.iteye.com/upload/attachment/426053/05324484-78d7-3e9e-8044-af391d576a17.png[/img]

修改配置文件config.xml,

<bean id="man" class="org.interfaces.impl.Man">
<property name="food">
<ref local="orange"/>
</property>
</bean>


再次运行主程序,结果显示如下:
正在吃橘子……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值