Spring框架18247.pptVIP

  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文档。上传文档
查看更多
任毅凡 2010-05-06 Spring框架 简介 Spring的魅力在于它宣称式的事务处理,依懒性的绑定和持久性的支持。 依赖注入机制减轻了组件之间的依赖关系,同时也大大提高了组件的可移植性,这意味着,组件得到重用的机会将会更多。 首先,我们的组件并不需要实现框架指定的接口,因此可以轻松的将组件从Spring中脱离,甚至不需要任何修改(这在基于EJB框架实现的应用中是难以想象的)。 其次,组件间的依赖关系减少,极大改善了代码的可重用性。 Spring的依赖注入机制,可以在运行期为组件配置所需资源,而无需在编写组件代码时就加以指定,从而在相当程度上降低了组件之间的耦合。 SVN使用说明 Beans命名空间下的元素简介 元素 描述 alias 为一个定义过的bean起一个别名 bean 在Spring容器中定义bean元素 constructor-arg 向bean的构造函数注入值或引用。这就是我们常说的构造函数注入。 description 用来描述Spring context或每个bean元素。虽然它会Spring容器所忽略,但description元素可以通过工具生成属于你的是Spring context文档。 import 导入其它Spring context的定义。 lookup-method 使用方法来代替getter注入。指定一个方法,它会在运行被复写从而返回一个指定的bean。这就是我们常说的getter注入。 meta 允许为你的bean进行meta配置。仅在一些特殊场合下有用。 property 为bean的特定属性注入一个值或者引用。这就是我们常说的setter注入。 replaced-method 用一个新的实现来代替bean的某个方法。 几种依赖注入模式的对比总结 接口注入模式因为历史较为悠久,在很多容器中都已经得到应用。但由于其在灵活性、易用性上不如 其他两种注入模式,因而在IOC的专题世界内并不被看好。 Type2和Type3型的依赖注入实现则是目前主流的IOC实现模式。这两种实现方式各有特点,也各具 优势(一句经典废话J)。 Type2 设值注入的优势 1. 对于习惯了传统JavaBean开发的程序员而言,通过setter方法设定依赖关系显得更加直 观,更加自然。 2. 如果依赖关系(或继承关系)较为复杂,那么Type3模式的构造函数也会相当庞大(我们需 要在构造函数中设定所有依赖关系),此时Type2模式往往更为简洁。 3. 对于某些第三方类库而言,可能要求我们的组件必须提供一个默认的构造函数(如Struts 中的Action),此时Type3类型的依赖注入机制就体现出其局限性,难以完成我们期望的功 能。 Type3 构造子注入的优势: 1. “在构造期即创建一个完整、合法的对象”,对于这条Java设计原则,Type3无疑是最好的响应者。 2. 避免了繁琐的setter方法的编写,所有依赖关系均在构造函数中设定,依赖关系集中呈现,更加易读。 3. 由于没有setter方法,依赖关系在构造时由容器一次性设定,因此组件在被创建之后即处于相对“不变”的稳定状态,无需担心上层代码在调用过程中执行setter方法对组件依赖关系产生破坏,特别是对于Singleton模式的组件而言,这可能对整个系统产生重大的影响。 4. 同样,由于关联关系仅在构造函数中表达,只有组件创建者需要关心组件内部的依赖关系。 对调用者而言,组件中的依赖关系处于黑盒之中。对上层屏蔽不必要的信息,也为系统的层次清晰性提供了保证。 5. 通过构造子注入,意味着我们可以在构造函数中决定依赖关系的注入顺序,对于一个大量依赖外部服务的组件而言,依赖关系的获得顺序可能非常重要,比如某个依赖关系注入的先决条件是组件的DataSource及相关资源已经被设定。 可见,Type3和Type2模式各有千秋,而Spring、PicoContainer都对ype3和Type2类型的依赖注入机制提供了良好支持。这也就为我们提供了更多的选择余地。理论上,以Type3类型为主,辅之以Type2类型机制作为补充,可以达到最好的依赖注入效果,不过对于基于Spring Framework开发的应用而言,Type2使用更加广泛。 Spring Bean封装机制 Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。 所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。 讲的通俗点,就是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档