我想同时使用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被初始化两次?如果是,我将如何避免这种情况?
最佳答案
对于ContextLoaderListener
和DispatcherServlet
,contextConfigLocation
参数是可选的。ContextLoaderListener
默认为/WEB-INF/application.xml
,DispatcherServlet
默认为/WEB-INF/servletname-servlet.xml
。
如果显式设置这些参数,则不应将它们设置为相同的值。 ContextLoaderListener
和DispatcherServlet
的上下文应具有不同的bean定义集,因为如您所说,否则,bean将被实例化两次。