1. ホーム
  2. スプリング

[解決済み】BeanFactoryとApplicationContextの比較

2022-04-04 06:08:10

質問

私はSpringフレームワークの初心者ですが、今度の会社のプロジェクトで使用するSpring MVCを評価するために、いくつかのサンプルアプリを作成して遊んでいます。今のところ、Spring MVCで見たものがとても好きで、とても使いやすく、ユニットテストに適したクラスを書くことを推奨しています。

練習として、サンプル/テストプロジェクトの1つでメインメソッドを書いています。1つだけ不明な点があります。 BeanFactoryApplicationContext - どのような条件で使用するのが適切か?

私は、以下のことを理解しています。 ApplicationContext は拡張する BeanFactory しかし、単純なメインメソッドを書くだけなら ApplicationContext を提供するのでしょうか?また、具体的にどのような追加機能が ApplicationContext を提供するのでしょうか?

main()メソッドでどれを使うべきか"に加えて、このようなシナリオで使うべき実装に関する標準やガイドラインがありますか?私のmain()メソッドは、ビーン/アプリケーションの構成がXML形式であることに依存するように書かれるべきですか - それは安全な仮定ですか、それとも私はユーザーを特定のものにロックしていますか?

また、この答えはWeb環境で変わるのでしょうか。もし私のクラスのどれかがSpringを認識する必要があるとしたら、そのクラスは ApplicationContext ?

よろしくお願いします。これらの質問の多くは、おそらくリファレンスマニュアルで回答されていると思いますが、マニュアルを隅々まで読まないと、これら2つのインターフェースの明確な内訳とそれぞれの長所/短所を見つけるのに苦労しています。

どのように解決するのですか?

これについては、springのドキュメントが素晴らしいです。 3.8.1. BeanFactoryかApplicationContextか? . 比較の表があるそうなので、スニペットを貼っておきます。

ビーンファクトリー

  • ビーンインスタンス化/ワイヤリング

アプリケーションコンテキスト

  • Beanのインスタンス化/ワイヤリング
  • BeanPostProcessorの自動登録
  • BeanFactoryPostProcessorの自動登録
  • 便利な MessageSource アクセス (国際化対応)
  • ApplicationEventの公開

そのため、Application Context側で提示された点が必要な場合は、ApplicationContextを使用する必要があります。