基于 Spring 框架的依赖注入研究.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 Spring 框架的依赖注入研究   引言   依赖注入(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 进行依赖关系的变化,不可能发生依赖关系被后面编写的代码破坏的现象,更能发挥自身的作用。构造子注入可以通过创建组件来实现改变依赖关系,同时由于设定集中在构造器,组件关系高内聚。 rQD   3.项目应用   系统的扩展以及维护通过系统组件的松散耦合得以加强,这种低耦合是由业务逻辑与控制器,业务逻辑与 DAO 的依赖来实现的。依赖业务逻辑接口,即针对此进行编程,跟具体实现类以及控制器没有关系,具体实现类以及业务逻辑组件也没有关系。Spring 框架中组件均为 Bean,例如 SessionFactory、事务管理器、数据源等,因此所有组件在应用中的管理均采用Bean 方式,Spring对创建 Bean 以及 Bean 的生命周期来管理。其依赖关系是通过配置文件给 Bean 进行精确的属性注入来组织和运用的,而不是依靠编写代码。   在Action类的内部通过依赖注入使得进行业务逻辑操作的时候,实现低耦合以及组件调用方便。另外,在业务逻辑组件中通过依赖注入底层 DAO 组件完成数据库操作。

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档