- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- Unit 5 Play by the rules--单元话题满分范文(教师版)新版 2025年新外研版八年级上册.docx
- ISO9001:质量管理体系标准理解.pptx VIP
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读PPT课件.pptx VIP
- 水泥生产环保知识培训课件.pptx VIP
- 物理一组卷高一上抛追击.pdf VIP
- 建设工程材料市场信息价查询-北京工程造价信息2025年第1期.doc VIP
- 一种用于吊篮停放的悬挑休息平台.pdf VIP
- CECS456-2016 格网土石笼袋、护坡工程袋应用技术规程(OCR).pdf
- 人教版语文小升初试卷含答案.docx VIP
- 水泥安全生产培训课件.ppt VIP
原创力文档


文档评论(0)