也谈 EJB 3.1 的新特性

看了 kyo100900 翻译的《EJB 3.1 真的来了吗?》之后,我也凑个热闹,谈谈 EJB 3.1 的新特性。

1. 可选的 EJB 接口:
记得刚开始学 EJB 的时候,被 EJB 的接口概念搞得很晕。最不好的是要写一个 Session EJB 就要写一对的接口。在 EJB 3.0 中,我们虽然可以通过 Annotation 简化 EJB 业务接口的声明,但是我们还是免不了要写接口。EJB 3.1 的草案中,我们看到了将 EJB 业务接口改为可选的新特性。我们可以直接将被 @Sessionful 或 @Sessionless 注释的 Bean 作为 Session Bean 来使用。不再需要 implenments 被 @Local 注释的借口了。我没有看 EJB 3.1 草案,但是这个接口简化特性可能只是针对本地业务接口的。也就是说你不用再声明本地接口有哪些方法,Session Bean 中的所有方法都会作为本地接口被暴露出来。毕竟,本地方法相对于远程方法是低资源消耗。但是远程接口又如何呢?我觉得默认情况下,EJB 3.1 中的 Session Bean 的方法是不能被远程访问的,还是需要 Remote Interface 的声明的。但到底如何,还是要看 EJB 3.1 规范正式发布。

2. Singleton Beans:
刚看的这个标题的时候,第一反应是想到了 Spring 中的 Singleton。但实际上,EJB 3.1 的 Singleton 是和 GOF 中的 Singleton 模式是一致的,而不是像 Spring 只是针对 Bean 的 Singleton。Singleton Bean 可以作为一种数据共享方式,并且拥有很多的 Java EE 特性,如事务、线程安全、远程访问等。不过 Singleton Bean 这个新特性到底如何还要看如何使用它。

3. 更简化的封装:
个人感觉简化的封装和原来的封装在不同环境下是各有好处,不过原来的封装形式也不是很麻烦。这个特性的最大吸引人之处在于通过 EJB Lite 可以让 EJB 应用程序运行在 Servlet 容器中。

4. 更强大的 Timer Service:
简单说就是可以用声明的方式创建 Timer 应用了。


EJB 3.1 的特性还有很多,但上面是比较重要的。

除此以外在谈一下 Web Bean。Web Bean 的目的就是使 JSF 不再需要 Backing Bean(即一般 MVC 框架中 Action 的概念),直接访问 Business Layer。要实现这一点关键是表现层的数据如何传递给业务层。在这个方面,Gavin King 的 Seam 已经做的很好了。Web Bean 的目的是希望 Seam 的一些特性能够进入 Java EE 6 规范中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值