07 容器

问题

spring中相关的容器有哪些

答案

容器,顾名思义,就是用来存放东西的;java容器包括spring中的容器都是用来存放对象的,而这些对象的功能便提供了相关容器的特性。

  • Servlet容器:Servlet 容器是 Web 服务器的一部分,用于提供基于请求/响应发送模式的网络服务,解码基于 MIME 的请求,并且格式化基于 MIME 的响应。总之,Servlet容器是用来管理Servlet的,属于web容器的一部分。

  • web容器:web容器主要有nginx、Apache、IIS、Tomcat、Jetty、JBoss、webLogic等,而Tomcat、Jetty、JBoss、webLogic同时也包括servlet容器。倘若web容器中不包括Servlet容器,只能访问静态页面,不能访问jsp。web容器是管理servlet(通过servlet容器),以及监听器(Listener)和过滤器(Filter)的。

  • spring ioc容器:在web 容器启动时,会触发ContextLoaderListener监听器中的contextInitialized方法,在这个方法中,spring 会初始化上下文即 WebApplicationContext,它包含了所有业务逻辑和数据库逻辑的对象 。这个就是Spring 的Ioc 容器,这也是父容器。

  • spring mvc容器:在父容器初始化完毕后,便开始进行web.xml 中配置DispatcherServlet的初始化。此servlet 就是springmvc中的前端控制器,用以转发、匹配、处理每个servlet 请求。这个就是spring mvc容器,这就是子容器。

  • web容器、父容器、子容器的访问可见性是子容器能访问父容器,父容器能访问web容器,但是却不能反过来,这就是Controller层在子容器加载【后加载】,Service层在父容器加载【先加载】的原因。当然,web容器当中也能访问ioc容器、mvc容器中的bean,需要借助于WebApplicationContextUtils。

posted @ 2020-03-30 17:41  张力的程序园  阅读(94)  评论(0)    收藏  举报