在 Java EE 5.0 中使用依赖注入.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文档。上传文档
查看更多
在 Java EE 5.0 中使用依赖注入

在 Java EE 5.0 中使用依赖注入 作者:Debu Panda 于01/04/2006 ( Debu Panda是一位Oraclee应用服务器开发团队中的资深的主要产品负责人。) 译者:EsunYang 于04/27/2006 依赖注入又称控制反转(IOC)是当前最新的开发潮流。诸如Spring 等IOC容器变得流行,就是因为它简化了企业java的复杂性,这些复杂性大部份是来自于JNDI。在这篇文章中,我会讨论如何在即将发布的Java EE 5.0中使用依赖注入为资源和服务进行声明。我将使用EJB3.0,Web Servic的元数据和依赖注入移植J2EE1.4蓝图程序java高级编译器。在这篇文章中我将使用这个应用程序去说明这些概念。 什么是依赖注入? 大多数企业级java应用程序都使用了诸如DataSources,EJBs或WebService的外在的资源和服务,在J2EE 1.4中,用户必须在部署描述符中明确声明所依赖的资源或者使用JNDI的lookup方法去获得资源的引用。 例如,如果你想在J2EE 1.4 中使用诸如DataSource 或EJB这样的服务,你必须在部署描述符作出类似下面的定义: ejb-local-ref ejb-ref-nameejb/HelloWorld/ejb-ref-name localoracle.ejb30.HelloWorld/local /ejb-local-ref 然后,在可以使用下列资源之前,你还必须像下面一样使用JNDI去查找这个对象: Context ic = new InitialContext(); HelloWorld helloWorld = ( HelloWorld)ic.lookup(java:comp/env/ejb/HelloWorld); 这些方法不仅仅使java新手感到难以理解,而且容易误导。而这些都归功于J2EE的复杂性。 依赖注入与JNDI相反,它(依赖注入)让你声明依赖,当需要请求资源时,由java EE容器处理资源或服务的复杂实例化和初始化。基于使用注释或部署描述符的资源声明,在必要时,Java EE 5.0容器会插入一个资源实例。图1对JNDI和依赖注入作了比较: 图1. JNDI和依赖注入的比较 在何处使用依赖注入? 依赖注入仅可以由受管对象使用,受管对象是指由Java EE容器管理的对象,比如EJB或Servlet,而不是那些诸如助手类(helper class)的一切类。例如,如果我们有一个EJB,我们可以在EJB3.0使用依赖注入,而不是在它所依赖的助手类上使用依赖注入。下表列出了在web和EJB模块中支持依赖注入的类型: 容 器 受管类的类别 资源类型 Web Servlet, listener classes, web services end-point, JAX-RPC handlers DataSource, JMS, Mail, EJB, Environment entries, EntityManager, UserTransaction EJB Bean, interceptors, web services end-point DataSource, JMS, Mail, Environment entries, EntityManager, EJB Context, UserTransaction, TimerService 一些Java EE容器,如Oracle Application Server 10g 10.1.3 和 JBoss Application Server 4.0,为EJB3.0提供较早的支持,因此在EJB容器中他们是支持依赖注入的。 正如我上面的描述一样,你既可以使用元数据批注或部署描术符去声明对资源的依赖。在最近提交的作为最后定稿的JSR250中,为java平台的通用元数据批注定义了两个资源依赖注解类(javax.annotation.Resource 和 javax.annotation.Resources),在JSR200中的EJB3.0中,为EJBs的依赖批注定义了javax.ejb.EJB,而在Java API for XML web service 2.0中为Web Servcie引用的依赖批注定义了javax.xml.ws.WebServiceRef。 Resource 注解可以用于诸如EJB或 Servlet 等受管类,或者它们(受管类)中的方法和字段。你可以用Resource批注去定对任何类别资源的依赖,如DataSource,JMS,Mail,URL,或environment enries(环境条目)。 下面是一jav

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档