Spring拾掇1 - 实现模块的切换

Spring整理1 -- 实现模块的切换

对象的生成由Spring通过读取配置文件(applicationContext.xml)动态设置,主调类仅仅面对接口编程,无需知道具体的实现类。这样我们就可以根据配置文件进行实现类的切换。从而降低耦合性。对象的生成,由框架通过反射机制完成,控制权从前端主程序转化到了框架,       这种思想叫做控制反转(IOC),Inverse Of Control,可以很好的实现模块切换。

例如:实现USB模拟程序

配置文件

<beans>

       <bean id="disk" class="usbdisk.UsbDisk"></bean>

</beans>

 
 

程序

package app; 

public interface IDISK {

       public abstract String readInfo();

       public abstract void writeInfo(String msg);

}

 

package usbdisk;

import app.IDISK;

public class UsbDisk  implements IDISK{

       public String readInfo(){
              return "从U盘读过来的信息";
       }

       public void writeInfo(String msg){
              System.out.println("向U盘写出信息:" + msg);
       }

}

 

package movedisk;

import app.IDISK;

public class MoveDisk implements IDISK{

       public String readInfo(){
              return "从移动硬盘读过来的信息";
       }

       public void writeInfo(String msg){
              System.out.println("向移动硬盘写出信息:" + msg);
       }

}

 

import java.awt.Frame;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.FileSystemXmlApplicationContext; 

import app.IDISK; 

public class Test { 

       public static void main(String[] args) {
              ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");

              IDISK disk =( IDISK)context.getBean("disk ");

//根据配置文件的内容,实例化对象并且返回
              disk.readInfo ();
       }
}