基于 Spring 框架的依赖注入研究论文(精选2篇)
依赖注入(Dependency Injection)或者说控制反转(Inversionof Control)是 Spring 框架结构的核心之一。基于 Spring 框架结构的系统中,DI 可以为任意对象动态的提供所需,代替了过去在控制对象生命周期和关系时需要直接依靠代码的方式。
1.依赖注入的原理与实现
依赖注入(DI)和依赖查找(Dependency Lookup)共同组成控制反转(IoC)。从原理的角度来说,依赖注入和控制反转是没有不同的,可以看作是从两个角度来阐述一个概念,即基于 Spring的架构系统中,在一个对象(调用者)为另一个对象(被调用者)协助工作(调用)时,不用创建,该调用由 Spring 的 Bean 完成,也就是控制反转。
依赖注入是使用 Reflection 实现的,在 Java 1.3 以后,有一个重要特性是 Reflection 可以当执行系统的时候,进行动态的创建、运行和修改实例。举个例子,当需要进行数据库操作时,不通过Spring 的做法是在操作中编写命令代码以得到 Connection,通过Spring 的做法是在系统运行中得到 Connection 并注入,来对各个对象进行控制。
依赖注入不仅可以在容器中注入一般属性值,也能将其他引用注入。在实际应用中,如果要调用实例,不再需要各组件应用Factory 模式,也不再需要依靠编写代码实现低耦合,而是可以做到实例的自动提供,也就是达到了程序的“按需分配”。
Bean 的接收和管理由控制反转实现,即定位、配置、实例化并且构造依赖应用程序的 Bean。BeanFactory 是 Spring 框架中的控制反转容器,项目中通常使用 XML 方式来描述对象间的依赖关系,配置元数据,如 XmlBeanFactory 可完成完全可配置系统。
在 Spring 框架中,控制反转管理是通过依赖注入进行的。依赖注入包括设置方式注入(Setter Injection)和构造子注入(Constructor Injection)两种。SI 是通过 JavaBean 属性进行依赖注入,CI 是通过构造子参数进行依赖注入。JavaBean 经由 Spring框架的管理配置可以得到低耦合的系统,实现系统的分层架构。
2.注入方式的对比
既然 Spring 框架支持两种依赖注入方式,即设置方式注入和构造子注入,那么它们各有何优势呢?
设置方式注入可以通过 Setter 很简单直接的进行设定,使得编写代码更加方便自如,这与传统的 JavaBean 很相似,有利于程序员的掌握和使用。设置方式注入还可以解决由于依赖关系复杂,阅读困难构造器太大的问题。
构造子注入不可以通过 Setter 进行设定,其依赖关系均在构造器中完成设定,不依靠 Bean 进行依赖关系的变化,不可能发生依赖关系被后面编写的代码破坏的现象,更能发挥自身的作用。构造子注入可以通过创建组件来实现改变依赖关系,同时由于设定集中在构造器,组件关系高内聚。
3.项目应用
系统的扩展以及维护通过系统组件的松散耦合得以加强,这种低耦合是由业务逻辑与控制器,业务逻辑与 DAO 的依赖来实现的。依赖业务逻辑接口,即针对此进行编程,跟具体实现类以及控制器没有关系,具体实现类以及业务逻辑组件也没有关系。Spring 框架中组件均为 Bean,例如 SessionFactory、事务管理器、数据源等,因此所有组件在应用中的管理均采用Bean 方式,Spring对创建 Bean 以及 Bean 的生命周期来管理。其依赖关系是通过配置文件给 Bean 进行精确的属性注入来组织和运用的,而不是依靠编写代码。
依赖注入 (Dependency Injection) 或者说控制反转 (Inversion of Control) 是Spring框架结构的核心之一。基于Spring框架结构的系统中, DI可以为任意对象动态的提供所需, 代替了过去在控制对象生命周期和关系时需要直接依靠代码的方式。
1. 依赖注入的原理与实现
依赖注入 (DI) 和依赖查找 (Dependency Lookup) 共同组成控制反转 (Io C) 。从原理的角度来说, 依赖注入和控制反转是没有不同的, 可以看作是从两个角度来阐述一个概念, 即基于Spring的架构系统中, 在一个对象 (调用者) 为另一个对象 (被调用者) 协助工作 (调用) 时, 不用创建, 该调用由Spring的Bean完成, 也就是控制反转。
依赖注入是使用Reflection实现的, 在Java 1.3以后, 有一个重要特性是Reflection可以当执行系统的时候, 进行动态的创建、运行和修改实例。举个例子, 当需要进行数据库操作时, 不通过Spring的做法是在操作中编写命令代码以得到Connection, 通过Spring的做法是在系统运行中得到Connection并注入, 来对各个对象进行控制。
依赖注入不仅可以在容器中注入一般属性值, 也能将其他引用注入。在实际应用中, 如果要调用实例, 不再需要各组件应用Factory模式, 也不再需要依靠编写代码实现低耦合, 而是可以做到实例的自动提供, 也就是达到了程序的“按需分配”。
Bean的接收和管理由控制反转实现, 即定位、配置、实例化并且构造依赖应用程序的Bean。Bean Factory是Spring框架中的控制反转容器, 项目中通常使用XML方式来描述对象间的依赖关系, 配置元数据, 如Xml Bean Factory可完成完全可配置系统。
在Spring框架中, 控制反转管理是通过依赖注入进行的。依赖注入包括设置方式注入 (Setter Injection) 和构造子注入 (Constructor Injection) 两种。SI是通过Java Bean属性进行依赖注入, CI是通过构造子参数进行依赖注入。Java Bean经由Spring框架的管理配置可以得到低耦合的系统, 实现系统的分层架构。
2. 注入方式的对比
既然Spring框架支持两种依赖注入方式, 即设置方式注入和构造子注入, 那么它们各有何优势呢?
设置方式注入可以通过Setter很简单直接的进行设定, 使得编写代码更加方便自如, 这与传统的Java Bean很相似, 有利于程序员的掌握和使用。设置方式注入还可以解决由于依赖关系复杂, 阅读困难构造器太大的问题。
构造子注入不可以通过Setter进行设定, 其依赖关系均在构造器中完成设定, 不依靠Bean进行依赖关系的变化, 不可能发生依赖关系被后面编写的代码破坏的现象, 更能发挥自身的作用。构造子注入可以通过创建组件来实现改变依赖关系, 同时由于设定集中在构造器, 组件关系高内聚。
3. 项目应用
在处处贯穿了Spring框架的依赖注入操作在项目的业务逻辑操作中得以体现, 其代码如下所示:
系统的扩展以及维护通过系统组件的松散耦合得以加强, 这种低耦合是由业务逻辑与控制器, 业务逻辑与DAO的依赖来实现的。依赖业务逻辑接口, 即针对此进行编程, 跟具体实现类以及控制器没有关系, 具体实现类以及业务逻辑组件也没有关系。Spring框架中组件均为Bean, 例如Session Factory、事务管理器、数据源等, 因此所有组件在应用中的管理均采用Bean方式, Spring对创建Bean以及Bean的生命周期来管理。其依赖关系是通过配置文件给Bean进行精确的属性注入来组织和运用的, 而不是依靠编写代码。
在Action类的内部通过依赖注入使得进行业务逻辑操作的时候, 实现低耦合以及组件调用方便。另外, 在业务逻辑组件中通过依赖注入底层DAO组件完成数据库操作。
摘要:从系统开发的应用角度, 阐述了依赖注入的原理、实现方式、两种注入方式的对比以及依赖注入的优势, 并通过业务逻辑组件和控制器组件, 举例说明了依赖注入在项目中的应用。
关键词:依赖注入,Spring,控制反转
参考文献
[1]张洪斌.Jbuilder/Web Logic平台的J2EE实例开发[M].北京:机械工业出版社, 2005.
[2]李发英.依赖注入在Spring和EJB3.0中的应用与实现[J].电脑知识与技术, 2008 (26) .
【基于 Spring 框架的依赖注入研究论文】推荐阅读:
spring总结10-17
基于dm广告的研究06-01
基于教学创新的有机化学论文11-11
基于产业链的战略管理研究论文06-29
基于本体理论的档案学及其应用研究论文06-13
基于行为因素的煤矿现代安全管理研究07-09
论文——基于我国政府会计的几点思考07-11
基于任务驱动的翻转课堂教学实践研究10-24
基于利益博弈论文10-17
混合式课例研究是基于对问题的研究06-03