美文网首页
Spring MVC 的 2 次加载和 Spring IoC 父

Spring MVC 的 2 次加载和 Spring IoC 父

作者: hemiao3000 | 来源:发表于2022-01-14 10:57 被阅读0次

    在 Spring MVC 的配置中我们提到 Spring MVC 有 2 次加载配置文件的时机:

    • 第一次是通过 ContextLoaderListener 进行加载;

    • 第二次是通过 DispatcherServlet 进行加载。

    在这里,你的项目中先后创建了 2 个 Spring IoC 容器:

    • 第一次加载时机所创建的 Spring IoC 容器习惯性被称作 Spring 容器,它是父容器;

    • 第二次加载时机所创建的 Spring IoC 容器习惯性被称作 Spring Web 容器,它是子容器。

    父容器-子容器的关系类似于父类-子类的关系:子容器中的对象能引用(<small>@Autowired</small>)父容器中的 Java Bean,但是反之则不行。

    当然,同一容器内的 Java Bean 之间的 @Autowired 是毫无问题的。

    结合我们平时在项目中的 MVC 三层的依赖关系和顺序:DAO 层被 Service 所使用,Service 层 Web 层所使用,所以,我们常见的配置的惯例是:

    • 将 DAO 层和 Servic 层的 Java Bean 配置、创建在 ContextLoaderListener 所创建的父容器中;

    • 将 Web 层和 Java Bean 配置、创建在 DispatcherServlet 所创建的子容器中;

    这样,能确保 Web 层的 @Controller 能正常地 @Autowired Service 层的 Java Bean 。

    相关文章

      网友评论

          本文标题:Spring MVC 的 2 次加载和 Spring IoC 父

          本文链接:https://www.haomeiwen.com/subject/wkdacrtx.html