1.IOCの概念
Inversion of Control(IOC)は、オブジェクト指向プログラミングの設計原則であり、コンピューターコード間の結合を減らすために使用できます。最も一般的な方法は依存関係インジェクション(略してDI)と呼ばれ、別の方法は依存関係ルックアップと呼ばれます。制御の反転により、オブジェクトが作成されると、システム内のすべてのオブジェクトを規制する外部エンティティが、依存するオブジェクトの参照を渡します。依存関係がオブジェクトに注入されているとも言えます。
(1)制御の反転、オブジェクトの作成およびオブジェクト間の呼び出しのプロセスは、管理のためにSpringに引き渡されます。
(2)IOCを使用する目的:結合を減らすため
(3)紹介ケースを行うことはIOCの実現です
2.IOCの基本原則
- 基本的な原則は、xml解析、ファクトリモード、リフレクションを含む3つの部分で実装されます。
プログラム設計には、高い凝集性と低い結合が必要です
(1)元のメソッドの呼び出し結合が高すぎる
(2)ファクトリモード-ユーザーとUserServiceの削減間の結合の程度ですが、まだある程度の結合があります
(3)結合の程度をさらに減らすために-IOC思考
最初のステップはXML構成ファイルであり、2番目のステップにはファクトリクラスを作成するためのサービスクラスとdaoクラスがあります。
3.IOCインターフェース
1. IOCのアイデアはIOCコンテナに基づいており、IOCコンテナの最下層はオブジェクトファクトリです
2. Springは、IOCコンテナ実装の2つの方法を提供します-2つのインターフェイス
(1)BeanFactoryインターフェース
BeanFactoryは、IOCコンテナの基本的な実装です。Springで使用される内部インターフェイスです。開発者が使用するために提供されていません。*構成ファイルのロード時にオブジェクトは作成されません。オブジェクトは、取得(使用)されたときにのみ作成されます。したがって、通常は使用されません。
/*一个例子*/
public class testSpring {
//新建测试单元
@Test
public void testUser(){
//1.加载Spring配置文件
//ApplicationContext context=
BeanFactory context=
new ClassPathXmlApplicationContext("bean1.xml");
//2.获取创建对象
User user=context.getBean("user", User.class);
//3.执行方法
System.out.println(user);
user.HelloSpring();
}
}
(2)ApplicationContextインターフェイス
BeanFactoryインターフェースのサブインターフェースは、ますます強力な機能を提供し、一般的に開発者によって使用されます。*構成ファイルをロードすると、構成ファイルオブジェクトが作成されます。
/*一个例子*/
public class testSpring {
//新建测试单元
@Test
public void testUser(){
//1.加载Spring配置文件
ApplicationContext context=
new ClassPathXmlApplicationContext("bean1.xml");
//2.获取创建对象
User user=context.getBean("user", User.class);
//3.执行方法
System.out.println(user);
user.HelloSpring();
}
}
(3)2つの違い:
BeanFactoryは、使用されたときにのみオブジェクトを作成しますが、ApplicationContextは、ロードされたときにオブジェクトを作成できます。実際のプロジェクトでは、この時間と労力を要するプロセスは通常、サーバーの起動時に読み込まれるため、通常、ApplicationContextを使用してIOCを実装します。
3.ApplicationContextインターフェイス実装クラスとBeanFactoryインターフェイス実装クラス
Ctrl + Hビュー実装クラス
- これには主に、ClassPathXmlApplicationContextとFileSystemXmlApplicationContextの2つのクラスが含まれます。
- ClassPathXmlApplicationContextは、コンテキストオブジェクトを取得するために使用されます。パラメータは、Srcディレクトリ内のファイルパス名です。
- FileSystemXmlApplicationContextは、コンテキストオブジェクトを取得するために使用されます。パラメータは、ドライブ文字から始まる実際のディレクトリのパスです。