通常のサーブレットについては、context listenerを宣言することができますが、Spring MVCの場合はSpringがこれを簡単にするでしょうか?アプリケーションコンテキストの初期化イベントにフックを追加するにはどうすればよいですか?
さらに、コンテキストリスナーを定義してから、servlet.xml
またはapplicationContext.xml
に定義されたBeanにアクセスする必要がある場合、どのようにアクセスできますか?あなたのservlet.xml
かapplicationContext.xml
ファイル内でこのBeanを登録し、その後
package test.pack.age;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
public class ApplicationListenerBean implements ApplicationListener {
@Override
public void onApplicationEvent(ApplicationEvent event) {
if (event instanceof ContextRefreshedEvent) {
ApplicationContext applicationContext = ((ContextRefreshedEvent) event).getApplicationContext();
// now you can do applicationContext.getBean(...)
// ...
}
}
}
:あなたは、このような何かをApplicationListener
インタフェースを実装するBeanを作成して登録する必要があり、それを行うために
ありがとう、ありがとう。spring3がイベントをフィルタリングすることを知っておきましょう。私は以前にapplicationListenerクラスに注目しました。そのフックはRequestHandledEventに対しても呼び出されます。 –
注釈を使用して2つのクラスを宣言するとどうなりますか?非注釈(XML)と2つの?宣言された順番で発射されるのだろうか?ありがとう;) – momomo
情報のためだけに、開始されたコンテキストのイベントはContextStartedEventです。 文書: - http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/event/ContextStartedEvent。 html –