zoukankan      html  css  js  c++  java
  • 使用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>

     学习笔记

  • 相关阅读:
    Github挂载大文件解决方案
    UWP 更强大的文件获取能力
    UWP 打开系统设置面板
    Windows 10
    Flutter
    Android笔记(三):View一些值得注意的地方
    Android笔记(二):savedIndstanceState 和 Bundle
    Android笔记(一):this 的表示范围和 Context
    用atom写LaTeX文档
    博客园LaTeX数学公式功能及效果展示
  • 原文地址:https://www.cnblogs.com/procedure/p/4568665.html
Copyright © 2011-2022 走看看