【IT168 专稿】近日《EJB实战》的作者Reza Rahman在普林斯顿Java用户团体的一次会议上展示了JEE 6的一些新特性,尽管会议上出了一点小花絮,由于投影仪损坏,Reza不得不通过一个15寸的显示器来进行演示,但是与会人员依然热情不减,毕竟能够与Java EE 6和EJB 3.1专家组成员之一交流的机会并不是经常有。
在过去几年中,JEE已经变成一个稳定和成熟的开发环境,但是人们对它的兴趣却并非十分高涨。人们已经习惯于批评它不够酷,批评它相对Spring具有许多缺点。不过JEE6实际上有不少重大的改进。以下是此次会议重点提到的它的一些变化。
1、功能删减
在JEE 6中移除了一些没有用户的功能,例如JAX-RPC、EJB 2.x Entity beans CMP等。
2、版本变化
JEE 6中提供三个版本,分别被以三种方式封装。精简(Minimal)版实际上就是一个Servlet容器;中间(Intermediate)版在精简版基础上增加了对EJB 3.1、WebBeans、JTA和JPA的支持;而完整版则增加了对JMS、JCA和大量JAX中间件技术。
我更愿意重新封装精简版,以加入JMS和事务管理的支持。把阿基米德的话在这儿改编一下,“给我一个Servlet容器,再加上MOM和JOTM,我可以改变这个世界。”许多企业应用程序都可以使用这些产品或APIs来开发完成。
WebBeans(JSR 299)集JSF、JPA和EJB 3于一体。它引入了会话(Conversation)、依赖注入(Dependency Injection)和注解元数据编程(annotation meta-programming)。
3、改进JSF功能
另外还有一些改进来让JSF重新焕发活力,例如配置约定、RESTful和AJAX支持,不过,对于这个技术我还是心存怀疑。我们现在正处于一个富互联网应用(RIA)的时代,我更倾向于将JSF将JEE规范中移除,而仅仅重点关注JavaFX。
4、简化EJB 3.1
EJB 3.1将变得更简单,这一点或许很多人已经有所耳闻。这儿比较有趣的一个开发是引入了(单态)Singleton Bean,将其作为你的应用的整体库,另外还有格式声明和编程定时器,支持Java SE(你可以直接在你的桌面应用上迅速创建一个服务器容器),还有EJB精简版。
5、在Java Persistence API中增加Bean验证(JSR 303),将可以让你在不同层次上验证数据。我希望有个一个可以有一个设置打开或关闭这个功能。
6、Servlet 3.0(JSR 3.0)一直是我非常关注的技术,原因是它具有非常巨大的可扩展潜力。通过使用非阻塞I/O(non-blocking I/O)和异步处理(查询的挂起和恢复),可以大大增加支持的并发用户的数量。开源的Jetty已经提出了一个Servlet 3.0的实现,商业化版本也将增加这一功能。Servlet正在转化为一个注解版的POJO。
7、最后一点是,通过使用JAX-FS API的ReEST,JEE 6将提供Web服务支持。