Spring IOC容器和Spring MVC IOC容器的区别

随声附和 提交于 2019-12-03 10:37:25

父容器和子容器的访问权限

 

<context-param>
    <param-name>contextConfigLocation</param-name>
   <!-- 指定加载application配置文件 -->
    <param-value>classpath:spring/application.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 配置SpringMVC -->
<servlet>
  <servlet-name>usermanage</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <!-- 指定加载外部的spring-mvc配置文件 -->
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/springmvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

 

 

Servlet:代表的的容器为spring-mvc的子容器

DispatcherServlet上下文在初始化的时候会建立自己的IoC上下文,用以持有Spring mvc相关的bean。

DispatcherServlet 是前端控制器

DispatcherServlet专门为前端监听请求的时候所用(负责协调和组织不同组件完成请求处理并返回响应工作)

当前端接收到请求时,DispatcherServlet 从容器中取出所有 HandlerMapping 实例并遍历,每个 HandlerMapping 会根据请求信息,通过自己实现类中的方式去找到处理该请求的 Handler (如Controller中的方法)

 

context-param:代表的容器是spring本身的容器,spring-mvc可以理解为一个继承自该容器的子容器,spring容器是最顶层的父类容器,跟java的继承原理一样

 

SpringMVC 的 IOC 容器中的 bean 可以引用Spring IOC 容器中的 bean,反之不行,原因是:

  1. Spring MVC是Spring的子类,子类可以引用父类,父类不能引用子类。

  2. 从软件层面上来说,Spring MVC是展示层可以调用业务层,业务层不能调用展示层。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!