读书人

Spring学习札记:第二章 Spring中IoC的

发布时间: 2012-10-25 10:58:57 作者: rapoo

Spring学习笔记:第二章 Spring中IoC的入门实例
第二章 Spring中IoC的入门实例
Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用。这一章先从Spring的IoC开始。所谓IoC就是一个用XML来定义生成对象的模式,我们看看如果来使用的。

1、数据模型。
1、如下图所示有三个类,Human(人类)是接口,Chinese(中国人)是一个子类,American(美国人)是另外一个子类。



源代码如下:

package cn.com.chengang.spring;

public interface Human {

void eat();

void walk();

}


package cn.com.chengang.spring;

public class Chinese implements Human {

/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#eat()

*/

public void eat() {

System.out.println("中国人对吃很有一套");

}


/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#walk()

*/

public void walk() {

System.out.println("中国人行如飞");

}

}


package cn.com.chengang.spring;

public class American implements Human {

/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#eat()

*/

public void eat() {

System.out.println("美国人主要以面包为主");

}


/* (非 Javadoc)

* @see cn.com.chengang.spring.Human#walk()

*/

public void walk() {

System.out.println("美国人以车代步,有四肢退化的趋势");

}

}


2、对以上对象采用工厂模式的用法如下
创建一个工厂类Factory,如下。这个工厂类里定义了两个字符串常量,所标识不同的人种。getHuman方法根据传入参数的字串,来判断要生成什么样的人种。

package cn.com.chengang.spring;

public class Factory {

public final static String CHINESE = "Chinese";

public final static String AMERICAN = "American";


public Human getHuman(String ethnic) {

if (ethnic.equals(CHINESE))

return new Chinese();

else if (ethnic.equals(AMERICAN))

return new American();

else

throw new IllegalArgumentException("参数(人种)错误");

}

}


下面是一个测试的程序,使用工厂方法来得到了不同的“人种对象”,并执行相应的方法。

package cn.com.chengang.spring;

public class ClientTest {

public static void main(String[] args) {

Human human = null;

human = new Factory().getHuman(Factory.CHINESE);

human.eat();

human.walk();

human = new Factory().getHuman(Factory.AMERICAN);

human.eat();

human.walk();

}

}


控制台的打印结果如下:




3、采用Spring的IoC的用法如下:
1、在项目根目录下创建一个bean.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="Chinese" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="Chinese" class="cn.com.chengang.spring.American"/>

</beans>


关于bean.xml的其它用法,不再详细介绍了,大家自己拿Spring的文档一看就明白了。
1 楼 pengchhx 2010-01-28 没图没真相

读书人网 >软件架构设计

热点推荐