InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

EJB3.1计划中的特性

作者 Charles Humble 译者 张龙 发布于 2008年3月20日

领域
语言 & 开发,
企业架构
主题
Enterprise Application Blocks ,
Java
标签
EJB ,
Java EE

EJB3.1专家组通过JCP发布了规范的早期草案 。EJB的新版本期望作为2008年底发布的Java EE 6规范的一部分,它主要面向如下两个方面:简化工作(从EJB3开始)以及增加Java企业社区要求的新特性。主要改变如下:

  1. 一个简化的本地视图,无需单独的本地业务接口就可提供session bean的访问。通过这种方式,开发人员仅仅使用一个bean类就能实现一个组件。
  2. 一个单例session bean组件:在应用所运行的JVM上,针对每个应用仅实例化一次,该单例session bean组件的目的是为应用提供一个缓存状态的简单方法。作为一个EJB,该单例可以访问标准的EJB中间件服务集——事务管理、安全、远程、依赖注入等等。当容器调用session bean类的newInstance方法时该单例启动。默认情况下,由容器负责决定何时生成一个实例,然而开发者可以通过使用@Startup注解或者相应的部署描述符让实例在容器启动时就实例化。一个单例可能依赖另一个单例(通过@DependsOn注解标明),在这种情况下被依赖的单例就需要先实例化。单例session bean的生命周期与创建它的容器保持一致,但是其状态会因为JVM的停止或崩溃而丧失。因为其意在共享,所以它支持并发访问,这可由容器管理或者在每个bean中由开发者管理。
  3. 基于日历的EJB定时器表达式和自动创建的定时器:定时器服务可以通过使用类似于UNIX cron工具的基于日历的语法来表示定时器回调时间表。例如下面的时间表代表了“每周一、周三和周五的3:15”:@Schedule(minute=“15”, hour=”3”, dayOfWeek=”Mon,Wed,Fri”)。定时器服务也支持通过bean的元数据或者部署描述符自动创建定时器。自动创建的定时器是在应用部署时由容器创建的。
  4. 异步的session bean调用:默认情况下session bean在其调用期内会阻塞客户端。通过一个异步的方法调用,容器将控制权返还给客户端并且在一个单独的线程上继续处理该调用。一个异步方法能返回一个Future对象,该对象使得客户端可以获得一个结果值、检查异常或者尝试取消正在进行中的调用。
  5. 对于Enterprise JavaBeans功能的一个轻量级子集的定义,它们能够在Java EE Profiles内(如Java EE Web Profile)被提供,该子集将支持EJB3.1 APIs的如下部分:无状态、有状态以及单例session beans、本地业务视图与非接口视图(no-interface view)、同步方法调用、拦截器、声明式安全、容器管理的事务(CMT)划分、bean管理的事务(BMT)划分、企业bean环境、Java Persistence 2.0 API、JTA1.1的用户事务接口、Common Annotations 1.0以及由基本的Java SE 6平台(JDBC、RMI-IIOP、JNDI、JAXP、Java IDL及JAAS)所支持的企业APIs。轻量级的EJB容器必须向企业bean实例提供一个JNDI API命名空间。打包的要求也得到了简化以便EJB组件可以直接打包到.war文件中——在这种情况下,EJB就驻留在WEB-INF/classes目录下而不再需要ejb-jar。其可选的ejb-jar.xml部署描述符放置在WEB-INF中。

规范的领导者Ken Saks已经开始撰写博文以提供更多的关于专家组工作情况的信息,包括对通用EJB组件映射的支持:

“对开发者来说造成挫败的一个共同的源泉就是用来解析和查找EJB引用的映射信息(如全局JNDI名)的不可移植性。我们不断探索以将该信息标准化使得应用无需特定于厂商的EJB组件映射就可以部署”

专家组仍处在定义EJB3.1过程的早期阶段,所以上面列出来的特性有可能发生变化。这也是我们通过邮件向专家组提供反馈信息来参与到下一版规范的制定工作中去的绝佳机会。

查看英文原文: Planned Features For EJB 3.1
译者简介:张龙,同济大学软件工程硕士,现就职于理光软件研究所。主要从事文档工作流和办公自动化解决方案的研发工作。热衷于Java轻量级框架的研究,对敏捷方法很感兴趣。曾有若干年的J2EE培训讲师经历。参与InfoQ中文站内容建设,请邮件至china-editorial[at]infoq.com

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

好可怜 发表人 Chen Island 发表于
Re: 好可怜 发表人 blogbin avatar 发表于
EJB是个好东西 。 发表人 李 广 发表于
EJB3.1如果有个中文的详细说明就更好了 发表人 wang mm 发表于
  1. 返回顶部

    好可怜

    发表人 Chen Island

    没有人回应,EJB都无法引起大家的兴趣了

  2. 返回顶部

    Re: 好可怜

    发表人 blogbin avatar

    可供选择太多了。

  3. 返回顶部

    EJB是个好东西 。

    发表人 李 广

    我比较喜欢EJB3.虽然用的还不是太熟,但我感觉这真是个好东西 。
    就是部署的时候还是麻烦一点。

  4. 返回顶部

    EJB3.1如果有个中文的详细说明就更好了

    发表人 wang mm

    EJB3.1如果有个中文的详细说明就更好了,现在正在用着,虽然对许多的知识点还不是太熟悉

    比如如果一个定时器在规定时间内没有结束,下一个又启动了
    这个timer就会在起一个实例来跑这个任务

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。