技术开发 频道

Java EE 6开发总结:注解支持与Profile

  Profile(配置文件)和裁剪

  Java EE 6引入了Profile的概念,它减小了Java EE平台的大小,Profiles是Java EE平台的配置,一个Profile可能包括Java EE平台技术的一个子集,其它技术则通过JCP取得,但JCP并不是Java EE平台的一部分。例如,假设有一个电话系统的Profile,这个Profile可能包括了Java EE Web层技术,如Servlet和JSP,EJB企业组件模块和持久化JPA,它也可能包含面向电话的技术,如JSR 289:SIP Servlet 1.1,虽然这个规范已经经历了JCP过程,但还不是Java EE平台的一部分。

  Profile是由JCP社区进程定义的。此外,Java EE 6规范为在Java EE Profiles中引用Java EE平台技术定义了规则,Java EE 6也强调了一个原则,那就是创建一个Profile得有充分的理由,规范是这样描述的“创建一个Profile的决定应该考虑它潜在的缺点,特别是分片和开发人员混淆方面,通常,只有当开发人员都支持,并且都理解了应用程序可以因此而得到哪些好处时,才需要创建一个Profile”。

  Profile有意独立于Java EE 6平台发展,Profile是通过Java规范请求(Java Specification Request,JSR)提交的,但是按它自己的节奏发布的,它与Java EE平台的版本并没有保持完整的一致性,也就是说诸如前面虚构的电话系统Profile可以按其行业发展情况自由发展,不与Java EE平台或其它Profile绑定,但需要注意,最好定期让Profile与平台同步,特别是平台的一个主要版本发布时应该同步。目标是维持一个公共的编程模型,简化开发人员跨整个Java EE 6产品家族的学习过程。(51CTO编辑注:在Java EE 6最终通过的投票上,JCP成员仍存有争议,其中之一就是针对Profile这个概念。比如说,SpringSource的Rod Johnson认为Profile的引入过于仓促,带入了很多未经证实的技术。)

  Web Profile

  Java EE 6定义的第一个Profile叫做Web Profile,它提供了一个Java EE平台的子集,其设计目的主要是用于Web开发,Web Profile只包括大部分开发人员需要的那些技术。

  下图是Java EE 6平台技术中Web Profile使用的技术。

  注意,Web Profile包括一个Servlet容器和所有传统的展示技术,如JSP,JSF和JSP的标准Tag库,EJB 3.1轻量级版是一个组件模型,也包括持久化JPA和事务管理JTA,还有Web分片,你可以使用传统的框架或库(如JAX-RS)轻松地扩展Web Profile。

  裁减(Pruning)

  Java EE 6平台中引入的另一个可以减小平台大小的技术是裁减,裁减一种技术意味着这种技术在下一个平台版本中,它可能成为一个可选组件,而不是一个必备组件,最终由社区进行决策。裁减可以减小Java EE平台产品的大小,因为Java EE应用程序厂商可能会在其实现中包括被裁减的技术,也可能排除被裁减的技术,如果包括被裁减计划的话,必须要提供兼容能力,保证现有应用程序可以继续运行。

  下面这些技术都是即将被裁减的候选者:

  ◆JSR 101:基于XML的RPC Java API

  ◆JSR 93: XML注册1.0 Java API (JAXR)

  ◆EJB实体Bean(定义为JSR 153:EJB 2.0或更早版本的一部分)

  ◆JSR 88: Java EE应用程序部署

  小结

  随着对Profile的支持,大量新技术如JAX-RS,增强的扩展性功能,如Web分片和平台级的注解,Java EE 6让Java EE平台更加灵活,更加强大,对于开发人员而言更加友好。连Hibernate之父Gavin King也推荐开发者们升级到Java EE 6,你为什么不下载Java EE 6 SDK,尝试一个Java EE 6平台下的实现呢?

0
相关文章