Spring IOCとSpring AOPの違いとその重要性は何ですか?
3 に答える
Web で IoC と AOP を検索しましたか? どちらも参考になるところが多いです。
簡単に言えば、IoC を使用すると、コードが実装を決定するのではなく、コードが使用する実装を外部の力で決定できます。「外部の力」は、構成ファイル、単体テスト、その他の異なるコードなどである可能性があります。
AOP を使用すると、横断的な懸念事項を、それらの懸念事項の影響を受けるコードの外部で実装できます。
Spring の「目的」には IoC と AOP が含まれますが、その範囲はそれをはるかに超えています。
詳しくはご確認ください。
コントロールコンテナの反転と依存性注入パターンと アスペクト指向プログラミング こちらもチェック
Spring IOC : 簡単な答えでは、通常、new
演算子を使用してオブジェクトを作成し、ゲッターとセッターを自分で設定します。そうです、new
Java で演算子を使用してオブジェクトを作成します。これを行うことは悪いことではありません。しかし、プロジェクトのサイズが大きくなり、多くの開発者が作業していて、POJO ベースのプログラミングを実現したい場合は、DI を使用できます。それで、あなたの質問が生じるかもしれません-なぜ私はそれを自分でコーディングできないのですか? もちろん、リフレクション、注釈、および XML の機能を使用できます。しかし、他の人がすでにこれをコーディングしているので、サードパーティのものを再利用してみませんか? 選択できるオプションはたくさんあります。春は最高のものかもしれません。オブジェクトの作成から破棄まで、オブジェクトのライフサイクルを管理します。Spring DI コンテナーによって作成および設定されたオブジェクトを使用しますが、それらを自分で作成することはありません。
Spring AOP : 横断的な懸念に関連しています。つまり、大規模なシステムでは、共通の機能がさまざまなモジュールに散らばっています。したがって、AOP は「アスペクト」の形式で共通の実装を取り出す最も簡単な方法を提供します。この場合、プロキシの概念を使用して独自の実装を作成することもできますが、Spring を使用した APO アライアンスの実装であるプロキシ ベースのコードを再利用できます。
Spring IOC の目的は、コンポーネント間の明示的な依存関係を減らすことですが、Spring AOP の目的は、おそらく特定の共通の動作を強制することによってコンポーネントを結び付けることです (read: NOT Interface)
Spring AOP の目的はコンポーネント間で特定の動作を強制することであるため、Spring IOC はこの目的を達成するのに役立ちます