首页 ┆网站地图 ┆游戏资讯 ┆天龙八部 ┆资源下载 ┆淘宝网购物 ┆淘宝数码产品 ┆淘宝数码相机 
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页 > JAVA专区 > SPRING > Spring入门示例代码,调试通过!
Spring入门示例代码,调试通过!
来源:CSDN博客 发布时间:2009-06-29 浏览:人次  字体:[  

下面简单的介绍两个SRPING应用示例,这些示例都来自于书本,都简单易懂,我也会详细的加以说明,另外需要使用下面的示例,需要引用Spring的JAR包:Spring.jar,该JAR包包括了大部份的应用,如果暂时不需要SPRINT的其它功能,该JAR足以。

以下的程序,全部都是调试通过的。

示例一、不同的人说不同的话

1、建立接口

工厂模式在SRPING中是随处体现,且提倡面向接口,因此首先建立接口:人

package test;
public interface Person {
 public void sayHello();
 public void sayBye();
}

2、建立两种具体的人:中国人、美国人

//中国人

package test;

public class Chinese implements Person {
 public void sayBye() {
  System.out.println("再见");
 }
 public void sayHello() {
  System.out.println("你好");
 }
}

//美国人

package test;

public class American implements Person {
 public void sayBye() {
  System.out.println("Bye");
 }
 public void sayHello() {
  System.out.println("hello");
 }
}

3、建立bean映射配置文件,bean.xml(这个文件名是什么没有关系,在初使化的时候指定给初使化程序就可以)

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
 "http://www.sprintframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="chinese" class="test.Chinese"/>
<bean id="american" class="test.American"/>
</beans>

4、建立JAVA测试类:

public void doIt(){

  /*获取bean映射配置文件,配置文件放于与当前测试类在同一个目录下*/
  ApplicationContext ctx=new FileSystemXmlApplicationContext(getClass().getResource("bean.xml").toString());
  Person person=null;
  person=(Person)ctx.getBean("chinese");
  person.sayHello();
  person.sayBye();
 
  person=(Person)ctx.getBean("american");
  person.sayHello();
  person.sayBye();
 }

5、对以上示例调用的说明:

A)、对接口Person和具体实现类Chinese、American就没有什么需要说明的了,和其它的编程方式,都是先定义接口,实现类再通过继承接口实现其方法。

B)、映射类中将类的路径定义为一个id的名称,到时系统根据传到的id名称,到配置文件中去找到该类的绝对路径,再通过反射原理加载该类,并返回其对象,这个是通过getBean这个动作完成的。

C)、根据里氏代换原则,能够接收父类的地方,都可以接收子类,所以这个时候通过getBean返回的对象(如Chinese或者American),都可以赋给接口Person,这个时候接口类调用其中的方法的时候,因为这个时候父类实际上接受的是子类的对象,因而这个时候调用的就是指定子类的方法。这个时候Spring就帮我们完成了如下工作:

Person person=new Chinese();

只是子类不是通过显示给出来的,而是通过Spring工厂通过映射配置生成的。

 

示例二、设值注入

设值注入是依赖注入的一种,依赖注入早期叫控制反转,也可以称反射,他们的意义都相同。当某个 Java 实例(调用者)需要另一个Java 实例(被调用者)时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。而在依赖注入的模式下,创建被调用者的工作不再由调用者来完成,通常由 Spring 容器来完成,然后注入调用者,因此称为控制反转,也称为依赖注入。

1、建立接口:人与斧头

人,定义一个动作:

package test2;
public interface Person {
 public void useAxe();
}

斧头,定义一个动作:

package test2;

public interface Axe {
 public void chop();
}

2、建立接口的实现类:中国人与石斧

中国人

package test2;

public class Chinese implements Person{
 /*默认无参构造方法不管为私的还是公有的,都可以访问,并且要保证bean中存在可以被外界访问的无参构造函数*/
 private Chinese(){};
 /*定义需要被使用的斧头接口,具体使用什么斧头这里不管*/
 private Axe axe;
 /*定义被注入斧头的set方法,该方法一定要符合JAVABEAN的标准。在运行时候,
  *Sping就会根据配置的<ref local=""/>,找到需要注入的实现类*/
 public void setAxe(Axe axe){
  this.axe=axe;
 }
 /*这个时候使用的axe,就不再是接口Axe本身,而是被注入的子类实例,所以这里的chop()动作就是具体子类的chop动作*/
 public void useAxe() {
  axe.chop();
 }
}

石斧

package test2;

public class StoneAxe implements Axe {
 public void chop() {
  System.out.println("石斧慢慢砍");
 }
}
3、建立映射配置文件bean.xml:

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
 "http://www.sprintframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="chinese" class="test2.Chinese">
 <!-- 声明实现类test2.Chinese中的属性 -->
 <property name="axe">
  <!-- 指定其中声明的属性,需要用本地的那个id对应的class
    这里local的值为"stoneAxe",表示axe的属性值在注入的时候,
    将会用test2.StoneAxe实例注入,到时在实例类Chinese中使用
    axe的时候,实际上调用的时候StoneAxe的实例
   -->
  <ref local="stoneAxe"/>
 </property>
</bean>
<bean id="stoneAxe" class="test2.StoneAxe"/>
</beans>

4、测试用例:

package test2;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Caller {
 public static void main(String[] args) {
  Caller caller=new Caller();
  caller.doIt(); 
 }
 public  void doIt(){
  String bean=getClass().getResource("bean.xml").toString();
  ApplicationContext ctx=new FileSystemXmlApplicationContext(bean);
  Person person=(Person)ctx.getBean("chinese");
  person.useAxe();
 }
}

共2页: 上一页 1 [2] 下一页
↓下一篇:没有了
 
相 关 文 章 发布商链接
·实例讲解Spring 2.5中配置JPA的过程
·Quartz的配置及使用和定时触发功能的...
·java中利用spring动态的创建hibernat...
·实例讲解spring整合struts的几种方式
·Spring框架简介及其Spring事务管理应...
·为什么Spring成为SOA开发的首选Java...
·Spring jar包详解
·使用Spring集成XFire开发WebServic...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)淘宝店铺一条街淘宝运动鞋淘宝网热门男装
网名:  验证码:  【所有评论】【↑返回顶部
评 分:12345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·Quartz的配置及使用和定时触...
·java中利用spring动态的创建h...
·实例讲解spring整合struts的...
·Spring框架简介及其Spring事...
·为什么Spring成为SOA开发的首
·Spring jar包详解
·使用Spring集成XFire开发WebS...
推 荐 主 题
java专题.net开发php学习
数据库windows7Word技巧
天龙八部QQ技巧IT职场
javascriptPhotoShop 淘宝购物
 
图 文 推 荐
热 门 文 章
·Quartz的配置及使用和定时触...
·实例讲解spring整合struts的...
·java中利用spring动态的创建h...
·Spring框架简介及其Spring事...
·Spring jar包详解
·实例讲解Spring 2.5中配置JPA...
·为什么Spring成为SOA开发的首...
·使用Spring集成XFire开发WebS...
热 门 关 键 字
 网站首页 - 关于本站 - 加入收藏 - 网站地图 - 淘宝购物 - 在线留言 - 广告服务 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .