`
SSailYang
  • 浏览: 308680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

也谈 EJB 3.1 的新特性

    博客分类:
  • Java
阅读更多
看了 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 规范中。
19
13
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics