下面的例子定义了一个Spring的简单实现,在这个实现中,有一个接口和两个实现类,以及一个客户端的调用类。

(1)首先是IFruit接口的定义,在这个接口中,声明一个方法countPayout()。该方法用来统计购买水果的费用情况。

    源代码:IFruit.java

Java代码  
  1. package org.nitpro.Spring;   
  2.   
  3. public interface IFruit {   
  4.     public void countPayout();   
  5.   
  6. }  

 

(2)定义Apple实现类,Apple是IFruit接口的实现

    源代码:Apple.java

Java代码  
  1. package org.nitpro.Spring;   
  2.   
  3. public class Apple implements IFruit {   
  4.        
  5.     private String price;   
  6.     private String number;   
  7.   
  8.   
  9.   
  10.     public String getPrice() {   
  11.         return price;   
  12.     }   
  13.   
  14.     public void setPrice(String price) {   
  15.         this.price = price;   
  16.     }   
  17.   
  18.     public String getNumber() {   
  19.         return number;   
  20.     }   
  21.   
  22.     public void setNumber(String number) {   
  23.         this.number = number;   
  24.     }   
  25.        
  26.     public void countPayout() {   
  27.         String strPrice=this.getPrice();   
  28.         String strNum=this.getNumber();   
  29.         if(strPrice==null||strNum.equals("")){   
  30.             strPrice="0.0";   
  31.         }   
  32.         double d_price=Double.parseDouble(strPrice);   
  33.         double d_num=Double.parseDouble(strNum);   
  34.         double payout=d_price*d_num;   
  35.         System.out.println("购买"+strNum+"斤苹果,支出RMB"+payout);   
  36.   
  37.     }   
  38.   
  39. }  

 

在Apple类中,实现了IFruit接口中的countPayout()方法,在coutPayout()方法中,使用了两个方法getPrice()和getNumber(),这两个方法分别对应price和number属性,price和number属性的值将依赖于我们在

applicationContext.xml文件相关节点的定义。

 

(3)定义Pear类,同Apple类一样,Pear类实现了IFruit接口。

源代码:Pear.java

Java代码  
  1. package org.nitpro.Spring;   
  2.   
  3. public class Pear implements IFruit {   
  4.     private String price;   
  5.     private String number;   
  6.   
  7.   
  8.   
  9.     public String getPrice() {   
  10.         return price;   
  11.     }   
  12.   
  13.     public void setPrice(String price) {   
  14.         this.price = price;   
  15.     }   
  16.   
  17.     public String getNumber() {   
  18.         return number;   
  19.     }   
  20.   
  21.     public void setNumber(String number) {   
  22.         this.number = number;   
  23.     }   
  24.        
  25.     public void countPayout() {   
  26.         String strPrice=this.getPrice();   
  27.         String strNum=this.getNumber();   
  28.         if(strPrice==null||strNum.equals("")){   
  29.             strPrice="0.0";   
  30.         }   
  31.         double d_price=Double.parseDouble(strPrice);   
  32.         double d_num=Double.parseDouble(strNum);   
  33.         double payout=d_price*d_num;   
  34.         System.out.println("购买"+strNum+"斤梨,支出RMB"+payout);   
  35.   
  36.     }   
  37.   
  38. }  

 

(4)Spring配置文件

源代码:applicationContext.xml

Java代码  
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <beans   
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">   
  6.   
  7. <bean id="Fruit" class="org.nitpro.Spring.Apple">   
  8. <property name="price" value="2.50"></property>   
  9. <property name="number" value="5"></property>   
  10. </bean>   
  11. </beans>  

 

(5)客户端测试类的代码

   源代码:TestA.java

Java代码  
  1. package org.nitpro.Spring;   
  2.   
  3. import org.springframework.context.ApplicationContext;   
  4. import org.springframework.context.support.FileSystemXmlApplicationContext;   
  5.   
  6. public class TestA {   
  7.   
  8.     public void testFruit(){   
  9.         ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");   
  10.         IFruit fruit=(IFruit)ctx.getBean("Fruit");   
  11.         fruit.countPayout();   
  12.     }   
  13.     public static void main(String[] args) {   
  14.         TestA t=new TestA();   
  15.         t.testFruit();   
  16.   
  17.     }   
  18.   
  19. }  

 

如果需要IFruit接口实现指定为Pear,直接修改Spring配置文件的节点即可,而不需要改动程序代码

Java代码  
  1. <bean id="Fruit" class="org.nitpro.Spring.Pear">