私のアプリケーションには2つのコンテキストがあり、1つは "spring"(Web + MVC)、2つ目は "rpc"(RPCサービス)です。どちらも "spring"ディレクトリ(app-config.xml、infrastructure-config.xml、integration-config.xml、security-config.xmlの4つのファイル)からconfigsを継承しています。ダブル(スケジューラ)Beanの初期化
app-config.xmlには、Quartz Schedulerの初期化が含まれています。
私がアプリケーションを起動すると、2つのQuartz Schedulerスレッドがあり、スケジュールされたすべてのサービスが2回呼び出されます。それは、私がapp-confix.xmlの設定を両方のコンテキストに継承しているからですか?
親configで定義されたbeanは、一度しか初期化されず、その親configを継承するコンテキスト間で共有されると考えました。
アドバイスありがとうございました:)。
my 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>
ありがとう、私はそれを試みます。私は別の奇妙なことを発見した。デバッグモードでeclipse(STS)からこのアプリケーションを直接実行すると、ただ1つのschleduler(Quartz)インスタンスしかありません。同じconfigs、同じtomcatですが、dev環境では1つのBeanインスタンスのみです。 – Peter