zoukankan      html  css  js  c++  java
  • SpringMVC学习指南-Spring框架

    Spring框架主要使用依赖注入。实际上,很多牛叉的框架如Google的Guice都是使用依赖注入。

    ------------------------------------------------------依赖注入和IOC容器--------------------------------------------------------

    1.依赖注入

    有两个组件A和B,其中A中的一个方法使用到了B中的方法:

    public classs A{
      public void MethodA{
        B b= ...//获取B的一个实例
        b.MethodB(); 
      }        
    }
    

    1)要想使用B中的方法,必须首先获取B的一个实例,如果B是一个具体的类,则可以通过new获取到B的实例。但是如果B是一个接口,这个接口有多个实现,此时我们只能使用这个接口的一个实现,因此降低了A的重用性。

    2)依赖注入接管对象的创建工作,并将该对象的引用注入到需要该对象的组件(也即对象)。上例,依赖注入框架会创建对象A和对象B,并将对象B注入到对象A中,这也对象A就可以使用对象B中方法。

    3)框架进行依赖注入的前提是这些有依赖其他对象的对象中,定义了set方法或者构造函数。

    set方法:框架会去调用这个set方法,将这个B对象注入到A对象。

    public classs A{
      private B b;
      public void MethodA{     b.MethodB();   }   public void setB(B b){     this.b=b;   } }

    构造函数:框架会去首先创建B对象,然后创建A对象。

    public classs A{
      private B b;
     
      public A(B b){
        this.b=b;
      }    
       
      public void MethodA{
        b.MethodB(); 
      }    
    }
    

    2.IOC容器

    Spring通过一个IOC容器可以很完美的管理Java对象依赖关系。程序员无需知道Spring框架的存在,不需要引入任何Spring类型。

    3.注解方式

    Spring从2.5版本后即可以使用@Autowired注解支持field方式的依赖注入,但有一个问题,程序员必须依赖于Spring的org.springframework.beans.factory.annotation.Autowired,这样无法直接迁移到另一个IOC容器中。

    使用Spring,程序几乎将所有重要对象的创建工作交给Spring,并管理配置如何注入依赖。Spring支持两种方式,分别是XML配置和注解。程序中需要一个ApplicationContext对象,代表一个Spring的IOC容器,这个接口有多个实现。一般对于Spring MVC应用来

    说,不需要显示创建这个接口的对象,我们可以通过一个SpringServlet来处理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"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    ...
    </beans>
    

    如果需要更强的Spring配置能力,可以在schemalocation属性中添加相应的schema。配置文件可以是一份,也可以分解成多分,以便支持模块化配置。ApplicationContext的实现类支持读取多份配置文件。也可以通过创建一个主配置文件,将该文件导入到其他配置文件,以便复用。

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <import resource="config1.xml"/>
        <import resource="other.xml"/>
    ...
    </beans>
    

      

      

     

  • 相关阅读:
    html5 canvas头像裁剪上传
    仿qq空间相册的图片批量上传
    仿美图秀秀的自由拼图
    actionscript3头像裁剪上传
    让ie6 7 8 9支持html5 websocket
    美化图片滤镜
    仿优酷频道首页的图片切换效果
    html5版canvas自由拼图
    php简易灌水
    php图片防盗链的小测试
  • 原文地址:https://www.cnblogs.com/striver-zhu/p/5891362.html
Copyright © 2011-2022 走看看