我想同时使用ContextLoaderListener(以便可以将Spring Bean传递到我的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定义集,因为如您所说,否则,bean将被实例化两次。

08-05 18:35