了解Spring MVC中的上下文

阿比舍克·舒克拉·拉维尚卡拉

我刚接触Spring,正在创建一个简单的Web应用程序。我一直在阅读有关Spring MVC中的上下文的信息。

我正在使用STS Eclipse插件。我使用插件创建了一个Spring MVC项目。

现在,我在项目中有三个xml文档,即web.xml,root-context.xml和servlet-context.xml。这些是由STS为我创建的。

  1. 在web.xml中,调度程序servlet指向servlet-context.xml,我知道调度程序servlets的工作是创建一个Web应用程序上下文,该上下文知道如何解析视图,并且是控制器bean存在的地方。我的理解正确吗?如果是这样,那么在这种情况下还能完成什么工作?

  2. 现在,有一个名为root-context.xml的文件,该文件对我的项目默认包进行了组件扫描。我的理解是,此上下文需要具有许多servlet可能使用的全局bean。我的理解正确吗?这还有什么作用?使用此文件创建什么样的上下文?

  3. 现在,我在项目中走得更远,我有几个* -context.xml文件(dao-context.xml,security-context.xml等),这些文件是使用contextLoaderListner(在web.xml中)加载的。这是一个好主意吗?还是应该将所有内容都放入servlet-context.xml?我认为具有不同的上下文是一个好主意,因为它提供了关注点的分离。评论?另外,从这些* -context.xml文件创建什么样的上下文?这些文件的正确文件夹位置是什么?

  4. Web.xml用于servlet容器,例如tomcat等,项目中的所有其他xml文件用于spring容器。那是对的吗?所有这些文件都分开提供关注点吗?

  5. 当前方案中存在多少个应用程序上下文和Web应用程序上下文?

为什么有人需要多个调度程序servlet?

为什么有人需要多个应用程序上下文?

有什么想法吗?评论?更正?最佳做法?

谢伦德拉

该设计的整个思想是在典型的Web应用程序中处理不同的体系结构层,并为跨上下文的bean提供继承/重写机制。Spring中的每种类型的上下文都与不同的体系结构层相关,例如Web层,服务层等。

一个基于Spring的Web应用程序可以配置多个调度程序servlet(尽管在大多数情况下,它是单个servlet-但是调度程序serlvet仍然是一个servlet,并且在web.xml中可以配置多个)。可以将它们配置为处理不同的URL模式。因此,显然每个都是不同的servlet,因此可以具有不同的Spring Web Application上下文。这些中的每一个都可以包含Spring Web层的不同配置,例如控制器,拦截器,视图解析器,语言环境解析器等,因为它们通常属于应用程序的Web层。所有这些配置和bean对于每个调度程序servlet都是私有的,因此它们彼此之间不可见。因此,具有单独的spring Web应用程序上下文对于启用此隐私是有意义的。但是,还有其他一些旨在共享的bean,因此它们属于根上下文。因此,所有可共享的东西都属于根上下文,对于此Web应用程序,可以将其视为全局的。

每个调度程序servlet都继承了在根上下文中定义的所有bean。但是,需要注意的重要一点是,共享Bean可以被各个调度程序Servlet特定的Bean覆盖。因此,在Web应用程序中,根上下文可以视为被继承但可以被覆盖的东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

了解Spring MVC中的上下文

来自分类Dev

如何使一个类了解Spring MVC中的多个应用程序上下文?

来自分类Dev

在Spring MVC中如何在控制器中获取上下文路径

来自分类Dev

将上下文注入到类似于Jersey InjectableProvider的Spring MVC控制器中

来自分类Dev

Spring MVC Web应用程序中的根上下文和调度程序Servlet上下文到底是如何?

来自分类Dev

没有Spring MVC的Spring Web上下文

来自分类Dev

了解onClick处理程序中的“ this”上下文

来自分类Dev

的Java / Spring MVC的:提供请求上下文子线程

来自分类Dev

上下文初始化失败Spring MVC错误

来自分类Dev

Spring MVC + Thymeleaf-正确的上下文路径处理

来自分类Dev

在 spring 5 中与孩子共享父 spring 上下文

来自分类Dev

了解弯括号“ {}”的上下文

来自分类Dev

了解多个上下文界限

来自分类Dev

试图了解画布概念的上下文

来自分类Dev

试图了解“哈希上下文”的含义

来自分类Dev

了解经典执行上下文示例

来自分类Dev

直接从Spring上下文在.properties文件中获取价值

来自分类Dev

在Spring Java Config类中读取上下文参数

来自分类Dev

Spring上下文层次结构中销毁Bean的顺序

来自分类Dev

直接从Spring上下文在.properties文件中获取价值

来自分类Dev

Spring应用程序中的根上下文路径

来自分类Dev

Spring集成上下文配置中的Bean引用

来自分类Dev

Spring Boot 中的上下文初始化问题

来自分类Dev

在Spring Boot中何时使用自定义上下文路径而不是根上下文

来自分类Dev

如何让 Spring MVC 只创建 1 个 Spring 上下文?

来自分类Dev

了解Antlr4中的上下文数据结构

来自分类Dev

RISC-V中的GDB是否支持了解程序上下文的断点?

来自分类Dev

了解Ruby on Rails 6中的路由+模块/类名称[以及在此上下文中的模块]

来自分类Dev

需要帮助以了解-XPath / XSLT中的上下文节点和当前节点

Related 相关文章

  1. 1

    了解Spring MVC中的上下文

  2. 2

    如何使一个类了解Spring MVC中的多个应用程序上下文?

  3. 3

    在Spring MVC中如何在控制器中获取上下文路径

  4. 4

    将上下文注入到类似于Jersey InjectableProvider的Spring MVC控制器中

  5. 5

    Spring MVC Web应用程序中的根上下文和调度程序Servlet上下文到底是如何?

  6. 6

    没有Spring MVC的Spring Web上下文

  7. 7

    了解onClick处理程序中的“ this”上下文

  8. 8

    的Java / Spring MVC的:提供请求上下文子线程

  9. 9

    上下文初始化失败Spring MVC错误

  10. 10

    Spring MVC + Thymeleaf-正确的上下文路径处理

  11. 11

    在 spring 5 中与孩子共享父 spring 上下文

  12. 12

    了解弯括号“ {}”的上下文

  13. 13

    了解多个上下文界限

  14. 14

    试图了解画布概念的上下文

  15. 15

    试图了解“哈希上下文”的含义

  16. 16

    了解经典执行上下文示例

  17. 17

    直接从Spring上下文在.properties文件中获取价值

  18. 18

    在Spring Java Config类中读取上下文参数

  19. 19

    Spring上下文层次结构中销毁Bean的顺序

  20. 20

    直接从Spring上下文在.properties文件中获取价值

  21. 21

    Spring应用程序中的根上下文路径

  22. 22

    Spring集成上下文配置中的Bean引用

  23. 23

    Spring Boot 中的上下文初始化问题

  24. 24

    在Spring Boot中何时使用自定义上下文路径而不是根上下文

  25. 25

    如何让 Spring MVC 只创建 1 个 Spring 上下文?

  26. 26

    了解Antlr4中的上下文数据结构

  27. 27

    RISC-V中的GDB是否支持了解程序上下文的断点?

  28. 28

    了解Ruby on Rails 6中的路由+模块/类名称[以及在此上下文中的模块]

  29. 29

    需要帮助以了解-XPath / XSLT中的上下文节点和当前节点

热门标签

归档