我的应用程序中有 2 个上下文,一个是“spring”(Web+MVC),第二个是“rpc”(只是 RPC 服务)。它们都从“spring”目录继承配置(有 4 个文件:app-config.xml、infrastructure-config.xml、integration-config.xml 和 security-config.xml)。
app-config.xml 包含 Quartz 调度器的初始化。
所以,如果我启动我的应用程序,就会有两个 Quartz Scheduler 线程,并且所有计划的服务都会被调用两次。那是因为我将 app-confix.xml 的设置继承到两个上下文中吗?
我认为在父配置中定义的 bean 只初始化一次,并在继承该父配置的上下文之间共享。
感谢您的任何建议:)。
我的 web.xml 中的示例。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/*-config.xml
</param-value>
</context-param>
<servlet>
<servlet-name>rpc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>rpc</servlet-name>
<url-pattern>/rpc/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/web/*</url-pattern>
</servlet-mapping>