Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根应用程序和web应用程序上下文spring mvc之间的差异_Java_Spring_Spring Mvc - Fatal编程技术网

Java 根应用程序和web应用程序上下文spring mvc之间的差异

Java 根应用程序和web应用程序上下文spring mvc之间的差异,java,spring,spring-mvc,Java,Spring,Spring Mvc,我是新的spring mvc,正在尝试了解一些基本知识。 有些事情对我来说是清楚的,但我仍然对春天的基础知识有些怀疑 首先,让我把清楚的事情说出来。(如果我错了,请反对我) SpringMVC中有两种xml文件:rootApplicationContext.xml和webApplicationContext.xml web.xml中的上下文参数标记定义了rootApplicationContext.xml 具有DispatcherServlet(充当表单控制器)的servlet标记定义webAp

我是新的spring mvc,正在尝试了解一些基本知识。 有些事情对我来说是清楚的,但我仍然对春天的基础知识有些怀疑

首先,让我把清楚的事情说出来。(如果我错了,请反对我)

SpringMVC中有两种xml文件:rootApplicationContext.xml和webApplicationContext.xml

web.xml中的上下文参数标记定义了rootApplicationContext.xml 具有DispatcherServlet(充当表单控制器)的servlet标记定义webApplicationContext.xml参数, rootApplicationContext的bean在所有webApplicationContext.xml文件中都是可压缩的

应用程序所有部分(如hibernate和DAO配置)所需的功能都是在rootApplicationContext中编写的

下面是我的问题:

(1) 我认为rootApplicationContext是在应用程序加载时加载的,webApplicationContext是在DispatcherServlet类加载时加载的。 那么何时加载DispatcherServlet类呢

(2) 控制器操作的对象是在应用程序加载时还是在调用时创建的

(3) 为控制器操作创建哪种类型的对象,单例还是原型

(3) 哪些xml应该包含过滤器、拦截器、AOP类的bean定义?为什么

对于我的一些疑问,请参考spring文档,但我仍然有一些疑问


谢谢

你在所有方面都是对的,这是一个非常好的开始。
所有servlet要么在容器启动时加载(如果您在web.xml中指定启动时加载值),要么在容器觉得不需要加载时加载,但通常不必担心。很明显,当需要的时候,单例在一开始就被加载到原型中。大多数对象都是单例对象,因此应该是无状态的。这是一个好主意,保持状态,只有在你知道你可以。您可以在将要使用的上下文中定义bean。拦截器仅在web上下文中使用,因此您可以将它们放在web上下文中。同样的逻辑也适用于所有其他方面,但要注意SpringMVC之外使用的与web相关的类,比如您自己的过滤器和类似的类。只有实际命中DispatcherServlet的请求才会知道Spring MVC的内容。

您的问题中有太多的问题需要回答,而且都是重复的。只要在这个网站上搜索一下,也要试着使用它。有关现代Spring配置提示,请参阅的源代码。