Servlet容器和Spring容器有何区别?

21

Servlet容器和Spring容器的角色和职责是什么?请有经验的人澄清我的疑虑。

2个回答

26
他们是非常不同的概念,即使它们的名称相似。 Servlet容器或Web容器(如Tomcat)是各种Java EE规范(如Java Servlet、JSP等)的实现。简单来说,它是一个Java Web应用程序所在的环境。一个Web服务器+Java支持。
另一方面,Spring容器是Spring框架的核心和引擎。它是一个IoC容器,处理Spring应用程序的生命周期,创建新的bean并注入依赖项。
因为Spring应用程序可以是Web应用程序,所以Spring容器可以“存在”于Web容器中。
更多信息请参见:

惊人的解释。谢谢@davioooh。 - SNEHA

3

Spring容器负责创建对象、将它们连接在一起、配置它们,并管理从创建到销毁的完整生命周期。Spring容器使用依赖注入(DI)来管理组成应用程序的组件。这些对象被称为Spring Bean。

而Servlet容器基本上是Web服务器或应用服务器,负责创建和维护servlet的生命周期,如init、service、destroy等。除了维护servlet的生命周期外,它还具有其他功能。


如果我们创建一个简单的Spring Web应用程序,我们可以找到Spring容器(即ApplicationContext / BeanFactory),但在我们的应用程序代码中找不到Servlet容器。请解释当客户端发送请求时,是否存在Servlet容器和Spring容器之间的通信? - Balasubramani
2
啊,没有ApplicationContext是Spring中的一个接口...类似的,ServletContext是servlet的接口...基本上,容器意味着一种持有对象的容器。 - SMA
1
在《Spring实战》一书中,没有单一的Spring容器。Spring提供了多个容器实现,可以分为两种不同类型,即Bean工厂(由org.springframework.beans.factory.BeanFactory接口定义)和应用上下文(由org.springframework.context.ApplicationContext接口定义)。 - Balasubramani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接