[Spring テクノロジー] Spring アーキテクチャ
[Spring テクノロジー] Spring IOC および DI エントリーケース
[Spring テクノロジー] Spring Bean の構成と例
[Spring テクノロジー] Spring 依存関係インジェクション (DI 構成)
[Spring テクノロジー] Spring サードパーティのリソース構成管理
[Spring テクノロジー] ] Spring Container Technology
[Spring Technology] Spring アノテーション開発
[Spring Technology] Spring Integration Mybatis&Junit 単体テスト
[Spring Technology] Spring AOP
[Spring Technology] Spring トランザクション管理
Springコンテナ技術
1.スプリングコアコンテナの紹介
問題のインポート
質問: Bean 名で Bean を取得する場合の欠点は何ですか。また、Bean タイプで Bean を取得する場合の欠点は何ですか?
1.1 コンテナの作成
- 方法 1: クラスパスで設定ファイルをロードする
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
- 方法 2: ファイル パスから構成ファイルをロードする
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
- 複数の設定ファイルをロードする
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml", "bean2.xml");
1.2 Beanオブジェクトを取得する
- 方法 1: Bean 名を使用して取得する
欠点: 自分で型変換を強制する必要がある
BookDao bookDao = (BookDao) ctx.getBean("bookDao");
- 方法 2: Bean 名を使用してタイプを取得および指定する
推奨される使用方法
BookDao bookDao = ctx.getBean("bookDao", BookDao.class);
- 方法 3: Bean タイプを使用して取得する
欠点: IOC コンテナ内に同じタイプの Bean オブジェクトが複数ある場合、ここでエラーが報告されます。
BookDao bookDao = ctx.getBean(BookDao.class);
1.3 コンテナクラスの階層
1.4 ビーンファクトリー
- 構成ファイルをロードするクラスパス
Resource resources = new ClassPathResource("applicationContext.xml");
BeanFactory bf = new XmlBeanFactory(resources);
BookDao bookDao = bf.getBean("bookDao", BookDao.class);
bookDao.save();
- BeanFactory が作成された後、すべての Bean は遅延ロードされます。つまり、getBean() メソッドを呼び出して Bean オブジェクトを取得すると、Bean オブジェクトが作成されて返されます。
2. Springコアコンテナの概要
2.1 コンテナ関連
- BeanFactory は IoC コンテナのトップレベル インターフェイスです。BeanFactory オブジェクトが初期化されると、ロードされた Bean は遅延ロードされます。
- ApplicationContext インターフェースは Spring コンテナーのコアインターフェースであり、Bean は初期化されるとすぐにロードされます。
- ApplicationContext インターフェースは、基本的な Bean 操作関連のメソッドを提供し、他のインターフェースを通じてその機能を拡張します。
- ApplicationContextインターフェースの共通初期化クラス
- ClassPathXmlApplicationContext(常用)
- FileSystemXmlApplicationContext