使用Spring容器

计应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>

 学习笔记

原文地址:https://www.cnblogs.com/procedure/p/4568665.html