Java EE应用服务器提供了Tomcat的所有功能,那么为什么要使用Tomcat(而不是官方的GlassFish等)?
特别是当需要使用Java EE功能,如JPA、JAX-RS、JSF等时,应用程序需要打包更多的库,而符合EE规范的应用程序服务器则已经在安装过程中提供了这些库,因此更加方便。
Java EE应用服务器提供了Tomcat的所有功能,那么为什么要使用Tomcat(而不是官方的GlassFish等)?
特别是当需要使用Java EE功能,如JPA、JAX-RS、JSF等时,应用程序需要打包更多的库,而符合EE规范的应用程序服务器则已经在安装过程中提供了这些库,因此更加方便。
我们心中的疑问,也是我们创建 TomEE 的全部原因是,为什么人们必须要做出选择呢?
10年过去了,人们仍然争论哪个更好,为什么。事实是:
很好,我们已经完成了一半,但人们仍在争论“Tomcat 或 JavaEE”。解决方案很明显,Tomcat需要被Java EE认证。于是Web Profile就应运而生,恰好可以做到这一点。
太棒了,现在我们做到了。
所有这些都发生在过去的两年中。情况已经改变了。
如果您想要 Tomcat 和 JavaEE,现在可以同时拥有它们。
很少有人使用纯Tomcat,他们总是添加大量额外的东西,比如Web框架、ORM、DI框架等等。
你可以使用Spring来完成这个任务,但最终结果会非常庞大、臃肿,并且你将不得不编写大量的XML代码。
现代Java EE 6实现非常轻量化(如TomEE和Resin仅25MB),并包含你所需的一切(Web、持久化、DI)。所谓的Web Profile不包含任何你很少需要的东西。现代Java EE 6服务器启动只需要一两秒钟,与裸Tomcat相同,但它们实际上提供了你每天所需的工具。
个人而言,我认为在支持软件中简洁是一种美德,而Servlet容器是支持软件,而不是您应用程序的一部分。