[解決済み] SpringのApplicationContextAwareはどのように動作するのでしょうか?
2023-05-22 20:29:29
質問
spring では、ビーンが
ApplicationContextAware
を実装している場合、そのビーンは
applicationContext
. したがって、他のビーンを取得することができる。
例
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
次に
SpringContextUtil.getApplicationContext.getBean("name")
はビーン "name"を取得することができます。
これを行うには、この
SpringContextUtil
の中に
applications.xml
の中に、例えば
<bean class="com.util.SpringContextUtil" />
ここではビーン
SpringContextUtil
はプロパティを含んでいません。
applicationContext
. 私は、春ビーンが初期化されたときに、このプロパティが設定されていると思います。しかし、これはどのように行われるのですか?どのようにメソッド
setApplicationContext
はどのように呼び出されるのでしょうか?
どのように解決するのですか?
SpringがBeanをインスタンス化するとき、以下のようないくつかのインターフェイスを探します。
ApplicationContextAware
と
InitializingBean
. これらが見つかると、メソッドが呼び出されます。例(非常に単純化したもの)
Class<?> beanClass = beanDefinition.getClass();
Object bean = beanClass.newInstance();
if (bean instanceof ApplicationContextAware) {
((ApplicationContextAware) bean).setApplicationContext(ctx);
}
新しいバージョンでは、spring特有のインターフェースを実装するよりも、アノテーションを使用した方が良い場合があることに注意してください。今は単純に
@Inject // or @Autowired
private ApplicationContext ctx;
関連
-
SLF4J: クラス・パスに複数のSLF4Jバインディングが含まれています。
-
無効な文字定数
-
Javaジェネリックを1つの記事で
-
Java:未解決コンパイル問題の解決方法
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】ユニットテスト中のSpring @Valueの入力について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
型に解決できない エラー解決
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
コンストラクタDate()が未定義である問題
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Java の double データ型における 0.0 と -0.0 の問題
-
Java基礎 - マッピングとQ/A
-
アクセス制限の解決方法: ---- in Java
-
テストが空であるかどうかを判断するためのオプションの処理