写点什么

EJB3.1 计划中的特性

  • 2008-03-20
  • 本文字数:1591 字

    阅读完需:约 5 分钟

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

2008-03-20 01:541203
用户头像

发布了 88 篇内容, 共 261.9 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

从React源码分析看useEffect

goClient1992

React

有赞算SaaS平台吗?

产品海豚湾

产品经理 SaaS 产品运营 B端产品 11月月更

深入理解Metrics(一):Gauges

冰心的小屋

Java metrics Guages

Cox 比例风险回归模型

heart_6662

11月月更 cox 生存分析 生物信息学

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Lansonli

数据湖 11月月更

docker-compose下的java应用启动顺序两部曲之二:实战

程序员欣宸

Docker Docker-compose 11月月更

计算机网络:随机访问介质访问控制之ALOHA协议

timerring

计算机网络 11月月更 ALOHA

CSS学习笔记(一)

lxmoe

CSS 前端 学习笔记 11月月更

【炫丽】从0开始做一个WPF+Blazor对话小程序

沙漠尽头的狼

随机森林-机器学习中调参的基本思想

烧灯续昼2002

Python 机器学习 算法 随机森林 11月月更

从输入URL到渲染的完整过程

loveX001

JavaScript

前端打工人的面试总结

loveX001

JavaScript

一天梳理完React所有面试考察知识点

beifeng1996

React

应对大规模的资产扫描一些小Tips

穿过生命散发芬芳

11月月更 资产扫描

前端面试中小型公司都考些什么

loveX001

JavaScript

你需要的react面试高频考察点总结

beifeng1996

React

如何做好线上服务质量保障?

老张

软件测试 质量保障

Vue自定义指令(一)初识

Augus

vuejs 11月月更

联通DataOps和MLOps:将机器学习推理作为新的数据源

Baihai IDP

人工智能 大数据 AI DataOps MLOps

DevOps|乱谈开源社区、开源项目与企业内部开源

laofo

DevOps 研发效能 工程效率

发力新市民圈层,银行系消费金融这半年都有哪些行动?

易观分析

金融 银行

从异步讲起,『函数』和『时间』该作何关系?

掘金安东尼

前端 11月月更

数据库的体系结构

阿泽🧸

数据库 11月月更

从输入URL到渲染的过程中到底发生了什么?

loveX001

JavaScript

一道React面试题把我整懵了

beifeng1996

React

前端工程师的20道react面试题自检

beifeng1996

React

算法题学习---链表中的节点每k个一组

桑榆

算法题 11月月更

3分钟快速掌握Go语言正/反向代理的姿势

有态度的马甲

极客时间运维进阶训练营第一周作业

LiaoWD

dokcer

React源码分析8-状态更新的优先级机制

goClient1992

React

2022-11-07:给你一个 n 个节点的 有向图 ,节点编号为 0 到 n - 1 ,其中每个节点 至多 有一条出边。 图用一个大小为 n 下标从 0 开始的数组 edges 表示, 节点 i 到

福大大架构师每日一题

算法 rust 福大大

EJB3.1计划中的特性_Java_Charles Humble_InfoQ精选文章