내 응용 프로그램에 2 개의 컨텍스트가 있는데 하나는 "스프링"(Web + MVC)이고 두 번째는 "rpc"(RPC 서비스)입니다. 두 파일 모두 "spring"디렉토리 (app-config.xml, infrastructure-config.xml, integration-config.xml 및 security-config.xml의 4 개 파일)에서 configs를 상속합니다.Double (Scheduler) Bean 초기화
app-config.xml에는 Quartz Scheduler가 초기화되어 있습니다.
내 응용 프로그램을 시작하면 두 개의 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>
고맙습니다. 나는 이상한 또 다른 것을 발견했다. 디버그 모드에서 이클립스 (STS)에서이 앱을 직접 실행하면 단 하나의 쉴러 (Quartz) 인스턴스 만 존재한다. 동일한 구성, 동일한 바람둥이,하지만 dev 환경에서 단 하나의 빈 인스턴스입니다. – Peter