2012年12月20日,Java EE 7的公共草案已上载。 乍一看,新规范是对Java EE 6中后续规范的改进。例如,我真的很喜欢Web Profile的想法。 遗憾的是它不是Java EE 6 Web Profile的一部分。
Web Profile是针对现代Web应用程序IMO的开发人员的,大多数现代Web应用程序都使用REST。 或者至少这是我的看法。 在Rails世界中,违反REST原则的AFAIK是同事残酷起诉的主题。 幸运的是,Java EE 7修复了该错误,并且JAX-RS规范现在已成为Web Profile的一部分。
然后,针对“现代” Web应用程序意味着要提供一个由标准API组成的合理完整的堆栈,并具有开箱即用的功能,可以满足大型Web应用程序的需求。
好的,现在您可以真正使用Web Profile开发“现代” Web应用程序了,但是…
在完整性方面,Web Profile提供了一个完整的堆栈,其中包含解决表示和状态管理的技术。 (JavaServer Faces,JavaServer Pages),核心Web容器功能(Servlet),业务逻辑(Enterprise JavaBeans Lite),事务(Java Transaction API),持久性(Java Persistence API)等。
对我来说听起来像是多余的。 例如,为什么在那里需要EJB? 如果CDI正确地支持拦截器,那么从这个意义上讲就不需要EJB了。 还是JSF? 好吧,我只是不喜欢这个。
我在这里要说的是,由于出于兼容性原因,将无法从Web Profile中删除规格,也许现在是时候创建“ Light Profile”了吗? 一套足以构建现代 Web应用程序的Java EE规范。
当然,该术语有点模糊-我们应该考虑什么是现代Web应用程序 。 如今,它是REST后端和UI技术(例如HTML5和JavaScript)的组合。 我的逻辑说,由于Java EE没有指定UI技术,因此所需的主要规范是JAX-RS和支持事务(JTA / JTS),持久性(JPA)和依赖项注入(CDI)的补充规范。 当然,有一些很好的补充规范,例如Bean验证和用于JSON处理的Java API。 但是,我肯定会放弃JSF和EJB。
这将使像Tomcat和Jetty这样的容器更加接近规范,谁知道也许有一天我们将拥有一个Java EE“ Jetty Profile”,为什么不呢?
参考: Java EE 7公共草案已发布。 我需要Java EE Light Profile! 从我们的JCG合作伙伴 Anton Arhipov在Code Impossible博客中获得。
翻译自: https://www.javacodegeeks.com/2013/01/java-ee-7-public-draft-was-published-i-demand-java-ee-light-profile.html