根据DispatchServlet使用ContextLoaderListener


问题内容

我想同时使用ContextLoaderListener(以便可以将Spring
Beans传递到我的servlet)以及DispatchServlet(Spring MVC)。但是,当前我必须将init参数传递给这两个类的初始化程序:

<param-name>contextConfigLocation</param-name>
<param-value>
    /WEB-INF/spring/app-config.xml
</param-value>

因此,对于这两个类,我都使用相同的xml。想知道是否会导致我的bean被初始化两次?如果是,我将如何避免这种情况?


问题答案:

对于ContextLoaderListenerDispatcherServletcontextConfigLocation参数都是可选的。

ContextLoaderListener默认为/WEB- INF/application.xmlDispatcherServlet默认为/WEB-INF/servletname-servlet.xml

如果显式设置这些参数, 则不
应将它们设置为相同的值。在ContextLoaderListenerDispatcherServlet应该有套不同的bean定义背景,否则,就像你说的,豆类将两次实例化。