计应134-李亚晴
Spring是从一个实际开发中抽取出来的框架,因此它完成了大量开发中通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高开发效率。Spring 有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。它们都可代表Spring容器,是生成Bean实例的工厂,并管理容器中的Bean,也是Spring管理的基本单位,在基于Spring的JavaEE应用中,所有的组件都被当成Bean处理。
一个简单的装配U盘设备到电脑的例子:
interface SmartDevice //智能设备接口 { public void saveData(String data); //保存数据方法 }
SmartDevice实现类的代码:
实现了 SmartDevice接口的setUsbDevice()方法,实现该方法时使 UsbDevice=u
public class Computer implements SmartDevice { private USB usbDevice; public Computer(){ } //这里不能构造USB设备 public void saveData(String data) //实现智能设备的方法 { //insert,write,pop usbDevice.insert(); usbDevice.write(data); usbDevice.pop(); } //装配USB设备到电脑 public void setUsbDevice(USB u){ usbDevice=u; } }
USB的接口代码如下:
interface USB //USB接口 { public void insert(); public String read(); public void write(String s); public void pop(); }
USB的实现类,分别有insert()、read()、write()、pop()方法,代码如下:
package cqvie.com; public class UDisk implements USB { public void insert() { System.out.println("读入U盘"); } public String read(){ System.out.println("读取数据:"); return "data"; } public void write(String s){ System.out.println("写入数据"); } public void pop(){ System.out.println("弹出U盘"); } }
创建ApplicationContext实例,而ApplicationContext实例正事Spring容器。一旦获得了Spring容器,就可以通过该容器访问Spring容器中的Bean。运行后,将可看到程序正常输出Spring的ApplicationContext实例,下面
Computer c=(Computer) ctx.getBean("theComputer");
c.saveData("个人简历");
不是直接创建Computer实例,而是通过Spring容器获取Computer实例,这正是Spring容器的作用。
测试类:
package cqvie.com; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class test { public static void main(String[] args) { //Computer c=new Computer(); //USB u=new UDisk(); //c.setUsbDevice(u); ApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml"); Computer c=(Computer) ctx.getBean("theComputer"); c.saveData("个人简历"); } }
将 UDisk和Computer类部署到Spring配置文件中。
applicationContext.xml代码:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="theDisk" class="cqvie.com.UDisk" abstract="false" lazy-init="default" autowire="default" > </bean> <bean id="theComputer" class="cqvie.com.Computer" abstract="false" lazy-init="default" autowire="default" p:usbDevice-ref="theUDisk"> </bean> </beans>
学习笔记