`
sikla
  • 浏览: 8432 次
  • 性别: Icon_minigender_1
  • 来自: 开封
社区版块
存档分类
最新评论

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

    博客分类:
  • SSH
阅读更多
    这两天看郑阿奇主编的一本书《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();
    }
}


    运行主程序,输出结果显示如下:


    修改配置文件config.xml,
<bean id="man" class="org.interfaces.impl.Man">
    <property name="food">
        <ref local="orange"/>
    </property>
</bean>


    再次运行主程序,结果显示如下:
正在吃橘子……

  • 大小: 9.1 KB
1
3
分享到:
评论
1 楼 sikla 2011-02-27  
顺便说明一下:本文的目的是为了与各位同行交流编程经验,对书的质量本身并无恶意!

相关推荐

    Java EE使用教程(郑阿奇 主编)第七章 项目代码(Struts2_Example)

    Java EE使用教程第七章主要涉及的是Struts2框架的应用,这是一个经典的MVC(Model-View-Controller)架构,用于构建企业级的Web应用程序。Struts2是Apache软件基金会的一个开源项目,它通过提供一系列的拦截器、动作...

    JAVA EE源代码

    《高等学校计算机教材:Java EE实用教程》由郑阿奇编写,这本书可能包含了Java EE的核心概念和实践案例。在学习Java EE时,通常会涉及以下几个关键知识点: 1. **Servlet与JSP**:Servlet是Java EE中最基本的服务器...

    J2EEcodes javaEE基础实用教程源代码

    《J2EEcodes》是郑阿奇主编的一本关于Java EE基础实用教程的源代码集合,主要面向正在学习和实践J2EE技术的学生或者开发者。这本书的目的是为了帮助读者更好地理解和应用Java EE技术,通过实际的代码示例来加速实验...

    JavaEE基础实用教程第二版源代码下

    本教程“JavaEE基础实用教程第二版源代码”由郑阿奇编著,是一本针对初学者的教程,旨在帮助读者掌握JavaEE的基础知识和实践技巧。书中通过实例的方式深入浅出地讲解了JavaEE的核心技术,包括Servlet、JSP、JDBC、...

    Struts实现CRUD操作

    Struts是一个开源的Java EE框架,它主要用于构建基于MVC(模型-视图-控制器)设计模式的Web应用程序。在本教程中,我们将探讨如何利用Struts实现CRUD(创建、读取、更新和删除)操作,这是一些基本但至关重要的...

Global site tag (gtag.js) - Google Analytics