Spring 程序示例

创建 Spring 程序简单程序:

一、首先建立目录myspring,该目录下分别建立以下子目录:
build -> 存放编译文件class
lib     -> 存放库文件spring.jar,commons-logging.jar
src    -> 存放java源文件

二、在myspring/src目录下创建java源文件:
touch Message.java Information.java Display.java Console.java Instance.java beans.xml

接口:Message ->类:Information  提供信息
接口:Display -> 类: Console        显示信息
启动类:Instance
配置文件:beans.xml

三、myspring/src目录下的代码如下:

Message.java

public   interface  Message ... {
    
public String getString();   //接口方法
}


Information.java

public   class  Information  implements  Message ... {
    
public String getString()...{      //实现接口方法
        return "Hello world, This is a Spring demo.";

    }

}


Display.java

public   interface  Display ... {
   
//接口方法,显示消息
    public void display();
    
//接口定义了属性message,访问Message接口
    public void setMessage(Message message);
    
public Message getMessage();
}


Console.java

public   class  Console  implements  Display ... {
    
private Message message = null;  //定义message属性

    
public void display()...{    //实现接口方法,显示消息
        if(message == null)...{
            
throw new RuntimeException("Your must set property message of class:"+
              Console.class.getName());
        }

        System.out.println(message.getString());
    }


    
public void setMessage(Message message)...{
        
this.message = message;
    }


    
public Message getMessage()...{
        
return message;
    }

}


Instance.java

import  org.springframework.beans.factory.xml.XmlBeanFactory;
import  org.springframework.core.io.FileSystemResource;
public   class  Instance ... {
    
public static void main(String[] args)...{
        XmlBeanFactory factory 
= new XmlBeanFactory(new FileSystemResource("build/beans.xml"));
        Console console 
= (Console)factory.getBean("console");  //获取Console类实例
        console.display();  //使用接口约定的方法,显示消息。
    }

}



Instance类使用的bean由beans.xml指定,Spring通过beans.xml配置向Console类注入了Information类,保存在Console类的message属性事,以便Console在调用display时取得消息并显示。

beans.xml

<! DOCTYPE beans PUBLIC "-//SPRING//BEAN DTD//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd"
>
< beans >
    
< bean  id ="information"  class ="Information" />
    
< bean  id ="console"  class ="Console" >
        
< property  name ="message" >
            
< ref  local ="information"   />
        
</ property >
    
</ bean >
</ beans >



四、在myspring主目录下创建项目文件build.xml:

< project  name ="myspring"  default ="run"  basedir ="." >
    
< property  name ="srcdir"  value ="${basedir}/src"   />
    
< property  name ="libdir"  value ="${basedir}/lib"   />
    
< property  name ="destdir"  value ="${basedir}/build"   />
   
    
< path  id ="libraries" >
        
< fileset  dir ="${libdir}" >
            
< include  name ="*.jar"   />
        
</ fileset >
    
</ path >

    
< target  name ="clean" >
        
< delete  dir ="${destdir}" />
        
< mkdir  dir ="${destdir}"   />
    
</ target >
   
    
< target  name ="configuration" >
        
< copy  todir ="${destdir}" >
            
< fileset  dir ="${srcdir}" >
                
< exclude  name ="**/*.java"   />
            
</ fileset >
        
</ copy >
    
</ target >

    
< target  name ="compile"  depends ="configuration"   >
        
< javac  srcdir ="${srcdir}"  destdir ="${destdir}"  classpathref ="libraries" />
    
</ target >

    
< target  name ="run"  depends ="compile" >
        
< java  classname ="Instance"  fork ="true"  classpathref ="libraries" >
            
< classpath  path ="${destdir}" />
        
</ java >
    
</ target >
</ project >



五、在myspring主目录下执行ant
ant必须在路径上能搜索到,否则不能执行,执行结果:
run:
     [java] 2008-2-3 7:58:46 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
     [java] 信息: Loading XML bean definitions from file [/home/jones/workspace/myspring/build/beans.xml]
     [java] Hello world, This is a Spring demo.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值