在 Java EE 5.0 中使用依赖注入

在 Java EE 5.0 中使用依赖注入

ID:38744746

大小:107.00 KB

页数:7页

时间:2019-06-18

在 Java EE 5.0 中使用依赖注入_第1页
在 Java EE 5.0 中使用依赖注入_第2页
在 Java EE 5.0 中使用依赖注入_第3页
在 Java EE 5.0 中使用依赖注入_第4页
在 Java EE 5.0 中使用依赖注入_第5页
资源描述:

《在 Java EE 5.0 中使用依赖注入》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在JavaEE5.0中使用依赖注入作者:DebuPanda于01/04/2006(DebuPanda是一位Oraclee应用服务器开发团队中的资深的主要产品负责人。)译者:EsunYang于04/27/2006依赖注入又称控制反转(IOC)是当前最新的开发潮流。诸如Spring等IOC容器变得流行,就是因为它简化了企业java的复杂性,这些复杂性大部份是来自于JNDI。在这篇文章中,我会讨论如何在即将发布的JavaEE5.0中使用依赖注入为资源和服务进行声明。我将使用EJB3.0,WebServic的元数据和依赖注入移

2、植J2EE1.4蓝图程序java高级编译器。在这篇文章中我将使用这个应用程序去说明这些概念。什么是依赖注入?大多数企业级java应用程序都使用了诸如DataSources,EJBs或WebService的外在的资源和服务,在J2EE1.4中,用户必须在部署描述符中明确声明所依赖的资源或者使用JNDI的lookup方法去获得资源的引用。例如,如果你想在J2EE1.4中使用诸如DataSource或EJB这样的服务,你必须在部署描述符作出类似下面的定义:ejb/He

3、lloWorldoracle.ejb30.HelloWorld然后,在可以使用下列资源之前,你还必须像下面一样使用JNDI去查找这个对象:Contextic=newInitialContext();HelloWorldhelloWorld=(HelloWorld)ic.lookup("java:comp/env/ejb/HelloWorld");这些方法不仅仅使java新手感到难以理解,而且容易误导。而这些都归功于J2EE的复杂

4、性。依赖注入与JNDI相反,它(依赖注入)让你声明依赖,当需要请求资源时,由javaEE容器处理资源或服务的复杂实例化和初始化。基于使用注释或部署描述符的资源声明,在必要时,JavaEE5.0容器会插入一个资源实例。图1对JNDI和依赖注入作了比较:图1.JNDI和依赖注入的比较在何处使用依赖注入?依赖注入仅可以由受管对象使用,受管对象是指由JavaEE容器管理的对象,比如EJB或Servlet,而不是那些诸如助手类(helperclass)的一切类。例如,如果我们有一个EJB,我们可以在EJB3.0使用依赖注入,而不

5、是在它所依赖的助手类上使用依赖注入。下表列出了在web和EJB模块中支持依赖注入的类型:容器受管类的类别资源类型WebServlet,listenerclasses,webservicesend-point,JAX-RPChandlersDataSource,JMS,Mail,EJB,Environmententries,EntityManager,UserTransactionEJBBean,interceptors,webservicesend-pointDataSource,JMS,Mail,Environmen

6、tentries,EntityManager,EJBContext,UserTransaction,TimerService一些JavaEE容器,如OracleApplicationServer10g10.1.3和JBossApplicationServer4.0,为EJB3.0提供较早的支持,因此在EJB容器中他们是支持依赖注入的。正如我上面的描述一样,你既可以使用元数据批注或部署描术符去声明对资源的依赖。在最近提交的作为最后定稿的JSR250中,为java平台的通用元数据批注定义了两个资源依赖注解类(javax.a

7、nnotation.Resource和javax.annotation.Resources),在JSR200中的EJB3.0中,为EJBs的依赖批注定义了javax.ejb.EJB,而在JavaAPIforXMLwebservice2.0中为WebServcie引用的依赖批注定义了javax.xml.ws.WebServiceRef。Resource注解可以用于诸如EJB或Servlet等受管类,或者它们(受管类)中的方法和字段。你可以用Resource批注去定对任何类别资源的依赖,如DataSource,JMS,Ma

8、il,URL,或environmentenries(环境条目)。下面是一javax.annotation.Resource接口的批注声明:public@interfaceResource{publicenumAuthenticationType{CONTAINER,APPLICATION}Stringname()default''

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。