在上下文参数中加载上下文并在Dispatcher Servlet的init-param中加载它有什么区别。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/root-context.xml</param-value>
</context-param>
VS
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value> /WEB-INF/mvc-config.xml </param-value>
</init-param>
我理解的是context-param由上下文侦听器加载,并且应该只包含中间层bean。其中init方法中的Dispatcher Servlet应该加载Web层bean。这种理解是否正确?为什么我们单独加载2件事?
答案 0 :(得分:1)
在context-param“contextConfigLocation”中,您应该包括您的应用程序上下文,因为您已经说过中间层bean,例如:services,datasource ......
Spring DispatcherServlet将在WEB-INF / servletName-servlet.xml中查找配置文件。使用init-param可以更改此默认行为。 servlet上下文(Web上下文)是隔离的,但可能将应用程序上下文保持为父级。您可以单独使用它们中的一个或其中一个。
答案 1 :(得分:1)
<context-param>
<Servlet>
标记之外,位于<webapp>
标记内。public String getInitParameter(String name)
接口的ServletContext
方法获取价值。getServletContext()
ServletConfig接口的方法返回ServletContext的对象。getServletContext()
GenericServlet类的方法返回ServletContext的对象。ServletContext application=getServletConfig().getServletContext();
ServletContext application=getServletContext();
<init-param> .
<Servlet>
标记内。public String getInitParameter(String name)
接口的ServletConfig
方法获取价值。getServletConfig()
Servlet接口的方法返回ServletConfig的对象。ServletConfig config=getServletConfig();