我们什么时候需要在容器中运行Java应用程序?

Sid*_*rth 3 spring containers java-ee

最近我开始学习Java EE和相关技术,有些概念让我感到困惑.在某处我读到,无论何时构建Java EE应用程序,都必须使用容器.

目前,我正在学习Spring框架,并试图用它来构建一个小应用程序来实现.现在,我不确定我是否必须使用容器(比如Tomcat),或者它取决于我正在构建的应用程序,我需要一个容器.

如果它取决于正在构建的应用程序,那么有哪些因素可以帮助决定是否应该使用容器?

Tho*_*rig 7

Puuhhh,这是一个非常大的问题,没有简单的答案.但我会尽力解释自己的意见:

什么是容器?

容器为您提供功能.这样的功能可以处理Web请求并将它们分派给servlet - 在这种情况下,我们称它们为servlet容器(例如Tomcat或Jetty).

但容器也可以提供其他东西,例如,它们可以提供用户身份验证,日志记录或与数据库的连接.大多数容器(例如Tomcat)会做多个这样的事情(例如Tomcat就是我提到的所有内容).有些容器比其他容器更多,例如JBoss可以比Tomcat做得更多.

交易

但是,有一个权衡:如果你使用一个简单的容器(如Tomcat),你需要自己做很多事情或者使用其他框架(比如Spring).但是如果你使用一个功能强大的容器,你必须非常了解容器,并且你的应用程序迟早会依赖于这个混凝土容器的可能性很高.

关键是,使用容器不是强制性的.这是一个决定.有些人会争论它,有些人反对它.但是根据您阅读的书籍,已经做出了这个决定(例如,J2EE需要一个J2EE容器,就是它的工作原理).

趋势(恕我直言)

多年前,趋势是使用尽可能多的强大(J2EE)容器.恕我直言,今天的趋势是使用更小,更轻便的解决方案.大多数开发人员更愿意使用Tomcat服务器而不是今天的JBoss服务器.

没有容器的框架

虽然J2EE需要一个容器,但还有其他框架/技术支持Web应用程序的开发,而无需任何外部容器.这样的框架是Play!Spark Java.

注意

如果您不熟悉容器和Spring,请注意不要混淆.您将使用Spring开发的大多数应用程序都是将部署到servlet容器的Web应用程序.这很常见.但春天没有继续这样做.您也可以在没有这样的容器的情况下使用Spring,例如开发桌面应用程序.但是如果你想开发一个Web应用程序,那么Java方法就是使用一个servlet容器.