IOCコンテナとDI依存性注入の例
IOCに対する深い理解
まずはいくつかの質問を通してIOCについて理解を深めましょう
- (1) Spring では IOC コンテナを使用して Bean オブジェクトを管理しますが、主に何を管理するのでしょうか?
主にプロジェクト内で使用するクラスオブジェクト(Service層オブジェクトやDao層オブジェクト)を管理します。
- (2) IOC コンテナに管理オブジェクトを通知するにはどうすればよいですか?
設定ファイルを使用する
- (3) 管理オブジェクトはIOCコンテナに引き渡されますが、コンテナからオブジェクトを取得したい場合、IOCコンテナを取得するにはどうすればよいでしょうか?
Spring フレームワークは対応するインターフェイスを提供します
- (4) IOC コンテナを取得した後、コンテナから Bean を取得するにはどうすればよいですか?
Spring フレームワークによって提供される対応するインターフェイスのメソッドを呼び出します。
- (5) Spring を使用してインポートされる座標はどれですか?
他の人のものを使用するには、対応する依存関係を pom.xml に追加する必要があります
IOC の例:
次に、プロセスを完全に理解しましょう。
1. まず、Spring の依存関係をインポートして Spring プロジェクトにする必要があります
2. 構成ファイルを作成し、Bean を構成します
3. メインプログラム内で参照可能
完全な分離の結果、データ層オブジェクトがビジネス層に保持されなくなると前に述べましたが、明らかに、私たちのコードはサービス層ではまだ新しいものです。
DIの深い理解
依存関係の注入を実現するには、IOC に基づいて Bean を管理する必要があります
-(1) 新規作成したDaoオブジェクトはサービス内に保持されますか?
Bean オブジェクトを削除して、最終的に IOC コンテナ内で使用する必要がある
- (2) サービスに必要な Dao オブジェクトはどのようにしてサービスに登録されますか?
Service にメソッドを提供し、Spring の IOC コンテナがこのメソッドを通じて Bean オブジェクトを渡すことができるようにします。
- (4) サービスとダオの関係をどのように説明しますか?
設定ファイルも使用します
DIの例
1. サービス層の新しい dao 層オブジェクトを削除し、サービス層に対応する set メソッドを提供します。
这一步相当于删掉业务层的dao对象并告诉service层需要的dao对象该如何获取(通过set方法),结束时,我们还不知道二者关系,需要利用配置文件建立关系
2. 構成ファイルを変更して、サービス層と DAO 層の間の関係を確立します。