程序员笔记| Spring IoC,面向切面编程,事务管理等春天基本概念详解

  

一、Spring IoC

  

1.1重要概念

  

<强> 1)控制反转(控制反转)

  

控制反转是一种通过描述(在java中通过xml或者注解),并通过第三方去产生或获取特定对象的方式。

  

控制反转奥委会(控制反转)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了国际奥委会容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了国际奥委会容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖奥委会容器了,通过国际奥委会容器来建立它们之间的关系。

  

控制反转就是获取依赖对象的方式反转了,正常情况下由应用程序主动创建依赖对象,实现对依赖对象的管理,创建依赖对象的控制权在应用程序手中,应用程序需要什么对象,就主动去创建这个对象,这是正转的情况。实现控制反转之后,由国际奥委会容器实现依赖对象的创建和管理,应用程序需要什么样的对象,奥委会容器就根据需求创建这个对象,应用程序只是被动地接收和使用这个对象,依赖对象的创建管理控制权由应用程序转移给了国际奥委会容器,这就实现了控制反转。

  

<强> 2)依赖注入(依赖注入)

  

控制反转的另一种表述方式,即让调用类对某一接口的实现类的依赖关系由第三方(容器或协作类)注入,用以移除调用类对某一接口实现类的依赖。

  

<强> 3)Beanfacory和ApplicationContext

  

春通过配置文件描述Bean以及豆之间的依赖关系,利用Java语言的反射功能实例化Bean并建立起豆之间的依赖关系.Spring的奥委会容器在完成这些底层工作的基础上,提供了豆实例缓存,生命周期管理,豆实例代理、事件发布,资源装载等服务。

  

Beanfacory是春天框架最核心的接口,提供了高级国际奥委会的配置机制.Beanfacory使管理不同的java对象成为可能,ApplicationContext(应用上下文)建立在Beanfacory基础之上,提供更多面向引用的功能.Beanfacory即为国际奥委会容器,由于ApplicationContext建立在Beanfacory,我们也称ApplicationContext为国际奥委会容器。

  

<强>奥委会容器主要功能

  
      <李>   

    动态创建,注入依赖对象。

      李   <李>   

    管理对象生命周期。

      李   <李>映射依赖关系。   
  

<>强实现奥委会容器的方式

  
      <李>   

    依赖查找。

      李   <李>依赖注入。   
  

<强>依赖注入的三种方式

  
      <李>构造器注入。   <李>埃特尔注入。   <李>接口注入。   
  

<强>注入和装配的区别

  

注入是实例化一个类时对类中各个参数的赋值方式。

  

装配是定义bean以及豆之间关系。

  
      <李>   

    装配豆概述:

      
        <李>   

      基于xml中配置。

        李   <李>   

      基于注解中配置。

        李   <李>   

      基于java类配置。

        李   <李>基于Groovy DSL配置。   
      李   <李>   

    豆作用域:

      
        <李>   

      单例(singleton):它是默认的选项,在整个应用中,春天只为其生成一个Bean的实例。

        李   <李>   

      原型(原型):每次注入时,或者通过Spring IoC容器获取Bean时,春天都会为它创建一个新的实例。

        李   <李>   

      会话(会话):在网络应用中使用,就是在会话过程中春天只会创建一个实例。

        李   <李>请求(请求):在网络应用中使用,就是在一次请求中春天会创建一个实例,但是不同的请求会创建不同的实例。   
      李   
  

1.2基于xml中配置

  

<强> 1)四种自动装配类型

  
      <李>   

    别名:根据名字自行自动匹配。

      李   <李>   

    byType:根据类型自行自动匹配。

      李   <李>   

    construtor:根据构造函数自行自动匹配。

      李   <李>自动检测:根据bean的自省机制选择byType或者construtor。   
  

<强> 2)豆之间的关系

  
      <李>继承;李   <李>依赖;李   <李>引用。   
  

1.3基于注解的配置

  

<强> 1)使用注解定义bean

程序员笔记| Spring IoC,面向切面编程,事务管理等春天基本概念详解