SpringフレームIoC容器の実現類BeanFactoryとApple Controxtの違い

1239 ワード

「Java Web開発は初心者から上級者まで」P 379から抜粋します.
SpringのIoC容器はBenFactoryインターフェースを実現した実用的なクラスです.実際、Springは2つの異なる容器を提供しています.1つは最も基本的なBeanFactoryで、もう1つは拡張されたAppplication Controxtです.BenFactoryは基本的な注入支援のみを提供していますが、ApplectoryはBenFactoryを拡張して、より多くの追加機能を提供しています.この二つの容器を実用化する時には違いがあります.
(1)BenFactory
XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("Spring.xml"));
あるクラスのインスタンスを取得すると、次のようになります.
BeansDemoClass beans = (BeansDemoClass) bFactory.getBean("beansDemoClass");
(2)Application Contect
ApplicationContext aContext = new ClassPathXmlApplicationContext("Spring.xml");

BeansDemoClass bDemoClass = (BeansDemoClass)aContext.getBean("beansDemoClass");
両者はビーンの初期化にも大きな違いがあります.BenFactoryは、呼び出しが必要なときに構成情報を読み取り、あるクラスの例を生成する.読み込んだビーンの配置が正しいと、他の構成にエラーがあってもプログラムの運転に影響しません.AplicationContectは初期化時にxmlの設定情報をメモリに読み込んで、XMLファイルを検査します.設定ファイルに間違いがなければ、すべてのBeanを作成して、直接にアプリケーションサービスを提供します.基本的なBeanFactoryに対して、Application Conteetの唯一の不足はメモリ空間を占用することです.アプリケーションの設定がビーンが多い場合、プログラムの起動が遅いです.