Spring Framework での制御の反転と依存性注入とはどういう意味ですか? 違いは何ですか?なぜSpringフレームワークで?
誰でも説明できますか?
また、初心者向けのSpringフレームワークを学ぶための本をいくつか提案してください。
Spring Framework での制御の反転と依存性注入とはどういう意味ですか? 違いは何ですか?なぜSpringフレームワークで?
誰でも説明できますか?
また、初心者向けのSpringフレームワークを学ぶための本をいくつか提案してください。
この 2 つの用語についての私の簡単な理解を書き留めておきます。
For quick understanding just read examples*
依存性注入 (DI):依存性注入とは、通常、メソッドに依存オブジェクトを作成させるのではなく、依存オブジェクトをパラメーターとしてメソッドに渡す
ことを
意味します。これが実際に意味することは、メソッドが特定の実装に直接依存していないということです。要件を満たす実装は、パラメーターとして渡すことができます。このオブジェクトを使用して、依存関係を伝えます。そして春はそれを利用可能にします。これは、疎結合のアプリケーション開発につながります。
Quick Example:EMPLOYEE OBJECT WHEN CREATED,IT WILL AUTOMATICALLY CREATE ADDRESS OBJECT (if address is defines as dependency by Employee object).
コントロール (IoC) コンテナーの反転:
これは、フレームワークの一般的な特性です。IOCは、インスタンス化からその BeanFactory による破棄まで、Java オブジェクトを管理します。 -IoC コンテナーによってインスタンス化される Java コンポーネントは Bean と呼ばれ、IoC コンテナーは、Bean のスコープ、ライフサイクル イベント、および構成およびコーディングされたすべての AOP 機能を管理します。
QUICK EXAMPLE:Inversion of Control is about getting freedom, more flexibility, and less dependency. When you are using a desktop computer, you are slaved (or say, controlled). You have to sit before a screen and look at it. Using keyboard to type and using mouse to navigate. And a bad written software can slave you even more. If you replaced your desktop with a laptop, then you somewhat inverted control. You can easily take it and move around. So now you can control where you are with your computer, instead of computer controlling it
.
制御の反転を実装することにより、ソフトウェア/オブジェクトの消費者は、制御されたりオプションが少なくなったりするのではなく、ソフトウェア/オブジェクトに対してより多くの制御/オプションを取得します。
設計ガイドラインとしての制御の反転は、次の目的に役立ちます。
特定のタスクの実行が実装から切り離されています。
すべてのモジュールは、その設計目的に集中できます。
モジュールは、他のシステムが何をするかについて何も仮定せず、それらのコントラクトに依存します。
モジュールを置き換えても、他のモジュールに副作用はありません
。ここでは抽象的にします。トピックの詳細を理解するには、次のリンクにアクセスしてください。
例を使った良い読み物