私は Spring Roo を使用して独自の実験をいくつか実行してきましたが、これは非常に優れているように思えますが、このツールはモデル層で AOP を多用していることに気付きました。
Roo を使用して実際のプロジェクトを作成することを考えています。知りたいことは次のとおりです。
- AOP がどこにでもあるのはなぜですか? それは大丈夫ですか?
- このアプローチの長所と短所は何ですか?
私はアスペクト指向プログラミングにまったく慣れていないので、いくつかのガイダンスをいただければ幸いです。
私は Spring Roo を使用して独自の実験をいくつか実行してきましたが、これは非常に優れているように思えますが、このツールはモデル層で AOP を多用していることに気付きました。
Roo を使用して実際のプロジェクトを作成することを考えています。知りたいことは次のとおりです。
私はアスペクト指向プログラミングにまったく慣れていないので、いくつかのガイダンスをいただければ幸いです。
Spring Framework には広範な AOP 機能があり、これらを Roo ベースのアプリケーションで使用することは理にかなっています。AOP を使用すると、ビジネス ロジックとシステム ロジックを適切かつ明確に分離できます。適切に実行すると、より保守しやすく理解しやすいコードベースが得られます。
欠点はパフォーマンスへのわずかな影響ですが、心配するほどではありません。
Spring と AOP の詳細については、docsを参照してください。Spring は、トランザクション管理や非同期操作などに AOP を使用します。
edit : @chedine が正しく指摘したように、AOP はコンパイル時に織り込まれるため、通常の AOP パフォーマンス ヒットは適用されません。
Spring ROO の場合、パフォーマンス ヒットはないと思います。コンパイル時のウィービングを使用しているため、すべての側面がコンパイル時に導入されます。
欠点は、この関連する SO の質問で対処されます:アスペクト指向プログラミング (AOP) の欠点は何ですか?