Springのrefreshを2つのパラメータで呼び出す方法

SpringのApplicationContextインターフェイスで定義されているrefreshメソッドは、引数を直接渡すことはできず、すべてのBean定義を再ロードし、すべてのシングルトンのBeanを再インスタンス化するアプリケーションコンテキストを更新するために使用されます。refreshメソッドに引数を渡す必要がある場合は、アプリケーションコンテキストを独自に実装して実現できます。

カスタム ApplicationContext 実装クラスに 2 つの引数を渡す方法を示すサンプルがあります。

public class CustomApplicationContext extends AbstractApplicationContext {
private String param1;
private int param2;
public CustomApplicationContext(String param1, int param2) {
this.param1 = param1;
this.param2 = param2;
}
@Override
protected void refreshBeanFactory() throws BeansException, IllegalStateException {
// 在这里可以使用param1和param2进行一些初始化操作
super.refreshBeanFactory();
}
}

アプリケーション内で固有アプリケーションコンテキストクラスを使用してパラメータを渡し、refreshメソッド呼び出す。

public class Application {
public static void main(String[] args) {
String param1 = "value1";
int param2 = 123;
ApplicationContext context = new CustomApplicationContext(param1, param2);
((ConfigurableApplicationContext) context).refresh();
}
}

この例では、CustomApplicationContext クラスは AbstractApplicationContext クラスを継承しており、refreshBeanFactory メソッドを上書きしています。このメソッドでは、param1 と param2 を使用して初期化操作を実行できます。次に、Application クラスで CustomApplicationContext インスタンスを作成し、param1 と param2 パラメータを渡し、最後に refresh メソッドをコールしてアプリケーションコンテキストをリフレッシュします。

bannerAds