Web容器/服务器比应用程序服务器更轻量级。随着Spring成为主流技术,轻量级的Web容器更加流行,最具代表性的就是Tomcat。Tomcat是Apache软件基金会Jakarta项目中的一个核心项目。它是由Apache、Sun和其他一些公司和个人共同开发的。得益于Sun(现为Oracle)的参与和支持,Tomcat始终能够最及时地支持最新版本的Servlet/JSP技术规范。EJB容器EJB容器是JavaEE环境的一部分,专用于运行JavaEE应用程序的应用程序逻辑部分。EJB是包含和操作JavaEE应用程序的核心数据结构的Java类。有没有发现Spring容器的功能跟它很像。然后EJB因为超重的设计很容易丢失,现在变成了Spring的天下。值得强调的是,Tomcat不包含EJB容器(没有JavaEE运行环境),但他的“兄弟”TomEE包含,是一个完整的应用服务器。插曲:TomEE和Tomcat的区别,他们是兄弟,技术上是一家人。Tomcat有也只是一个web服务器,并没有实现JavaEE中所有的web技术,而只是实现了Servlet、JSP等,所以非常轻量,可以和Jetty、Undertow等媲美。因为Spring现在技术栈很流行,使用Tomcat+Spring的开发部署方式已经成为现在的主流。TomEE扩展了ApacheTomcat,ApacheJakartaee9.1认证的应用服务器。但值得注意的是,它并不是一个全功能的应用服务器,而是一个WebProfileTomEE官网:https://openejb.apache.orgTomcat官网:https://tomcat.apache.org我曾经以为Tomcat不包括EJB运行环境是不够的,但是可移植性成为了最大的开发优势。JavaEE的三层技术结构首先,我们知道JavaEE应用是由组件组成的,组件是基于组件开发的。每个组件代表一个独立的功能单元,它们通过相关的类和容器组织在一起,并与其他组件进行交互。组件相互独立,可插拔,互不影响。它们分工合作,在各自的JSR规范指导下并行开发,很容易实现分层结构。
