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 (); } }