Spring起動後、特定の注釈を持つBeanのインスタンスコードをすべて取得します。
本論文で研究したのは主にSpring起動後に特定の注釈を持つ全てのBeanを取得することであり、具体的には以下の通りである。
最近のプロジェクトの中で一つのビジネスシーンに遭遇したのは、Spring容器の起動後にすべてのBeanを獲得し、特定のインターフェースの対象を実現しました。最初に思い付いたのはApplication Contawareです。setAppliation Controtextでctxを通じてすべてのbeanを取得しました。論理が間違っているようです。この方法は全てのbean初期化が完了した後に実現されたのではないです。その後試してみましたが、何かListenerがありますか?良いものを見つけました。その後、Appliation Listenerの使い方を教えてください。たくさんの例があります。私も私の例を記録してみます。
簡単です。
要約思考:このような機能はシステムパラメータの初期化を実現し、システム中のすべてのインターフェースサービスリストを取得するなど、Spring起動後に初期化する必要がある機能です。
延生してください。以上の起動後の事件以外に、他の三つの事件があります。
Cloosedは容器を閉じる時に呼び出します。Startdは理論的に容器を起動する時に呼び出します。Stopedは理論的に容器を閉じる時に呼び出します。
私はTomcat Serverを通じて起動停止しました。RefreshedとCloseedだけ見ました。なぜか分かりません。暇があったらまた研究を続けます。
締め括りをつける
以上、本文ではSpring起動後に特定の注釈を持つBeaビンのインスタンスコードのすべての内容を取得します。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。
最近のプロジェクトの中で一つのビジネスシーンに遭遇したのは、Spring容器の起動後にすべてのBeanを獲得し、特定のインターフェースの対象を実現しました。最初に思い付いたのはApplication Contawareです。setAppliation Controtextでctxを通じてすべてのbeanを取得しました。論理が間違っているようです。この方法は全てのbean初期化が完了した後に実現されたのではないです。その後試してみましたが、何かListenerがありますか?良いものを見つけました。その後、Appliation Listenerの使い方を教えてください。たくさんの例があります。私も私の例を記録してみます。
簡単です。
ApplicationListener<ContextRefreshedEvent>
インターフェースを実現して、実現クラスを@Componentすればいいです。コードは以下の通りです。
@Component
public class ContextRefreshedListener implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
// Spring
if(event.getApplicationContext().getParent()==null){
Map<String,Object> beans = event.getApplicationContext().getBeansWithAnnotation(IMobile.class);
for (Object bean:beans.values()){
System.err.println(bean==null?"null":bean.getClass().getName());
}
System.err.println("=====ContextRefreshedEvent====="+event.getSource().getClass().getName());
}
}
}
ここでは、event.getApplicationContext().getBeansWithAnnotation
を介して、特定の注釈を持つ全てのビーンズのセットを取得し、次いで、全てのビーンを巡回してトラフィックシーンを実現する。要約思考:このような機能はシステムパラメータの初期化を実現し、システム中のすべてのインターフェースサービスリストを取得するなど、Spring起動後に初期化する必要がある機能です。
延生してください。以上の起動後の事件以外に、他の三つの事件があります。
Cloosedは容器を閉じる時に呼び出します。Startdは理論的に容器を起動する時に呼び出します。Stopedは理論的に容器を閉じる時に呼び出します。
私はTomcat Serverを通じて起動停止しました。RefreshedとCloseedだけ見ました。なぜか分かりません。暇があったらまた研究を続けます。
締め括りをつける
以上、本文ではSpring起動後に特定の注釈を持つBeaビンのインスタンスコードのすべての内容を取得します。興味のある方は引き続き当駅の他のテーマを参照してください。友達のサポートに感謝します。