java spring ioc 实例_【Java EE】Spring中IoC的入门实例 - 思诚科技(seecen)

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

数据模型

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

源代码如下:

packagecn.com.chengang.spring;

publicinterfaceHuman{

voideat();

voidwalk();

}

packagecn.com.chengang.spring;

publicclassChineseimplementsHuman{

/*(非Javadoc)

*@seecn.com.chengang.spring.Human#eat()

*/

publicvoideat(){

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

}

/*(非Javadoc)

*@seecn.com.chengang.spring.Human#walk()

*/

publicvoidwalk(){

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

}

}

packagecn.com.chengang.spring;

publicclassAmericanimplementsHuman{

/*(非Javadoc)

*@seecn.com.chengang.spring.Human#eat()

*/

publicvoideat(){

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

}

/*(非Javadoc)

*@seecn.com.chengang.spring.Human#walk()

*/

publicvoidwalk(){

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

}

}

2、对以上对象采用工厂模式的用法如下

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

packagecn.com.chengang.spring;

publicclassFactory{

publicfinalstaticStringCHINESE="Chinese";

publicfinalstaticStringAMERICAN="American";

publicHumangetHuman(Stringethnic){

if(ethnic.equals(CHINESE))

returnnewChinese();

elseif(ethnic.equals(AMERICAN))

returnnewAmerican();

else

thrownewIllegalArgumentException("参数(人种)错误");

}

}

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

packagecn.com.chengang.spring;

publicclassClientTest{

publicstaticvoidmain(String[]args){

Humanhuman=null;

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

human.eat();

human.walk();

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

human.eat();

human.walk();

}

}

控制台的打印结果如下:

3、采用Spring的IoC的用法如下:

在项目根目录下创建一个bean.xml文件

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springFramework.org/dtd/spring-beans.dtd">

<beans>

<beanid="Chinese"class="cn.com.chengang.spring.Chinese"/>

<beanid="American"class="cn.com.chengang.spring.American"/>

</beans>

bean.xml的位置如下图,注意不要看花眼把它看成是lib目录下的了,它是在myspring目录下的。

修改ClientTest程序如下:

packagecn.com.chengang.spring;

importorg.springframework.context.ApplicationContext;

importorg.springframework.context.support.FileSystemXmlApplicationContext;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值