7

私は数か月前にGUiceを使用していましたが、戻ってみると、Guiceのドキュメントと例を読み直して、コードで何をしたかを理解する必要があります。

しかし、私がAspectJを見ると、それはすべて直感的すぎます。これは、Java言語の直感的な拡張です。座ってすぐにAspectJコードを書くことができると思います。

そのため、Guiceの追求を断念し、AspectJを採用したいと思っています。特にSpringがAspectJコードを生成しているという事実。

AspectJの上にGuiceのどの機能があり、Guiceを放棄するのを思いとどまらせる必要がありますか?

GoogleがGuiceを放棄して、代わりにAspectJを使用しないのはなぜですか?

逆に、Guiceの直感性に加えて、Guiceを放棄するように促すAspectJの機能は何ですか?

ここでの質問で「織り込む」ことが許可される場合、Java言語がAspectJとマージされないようにしたり、Javaの将来のバージョンで同様の「アスペクト」を提供したりすることを妨げるものは何ですか?

幸せなdelete-azillaをトリガーするには、この質問は一般的すぎる可能性があることに気付きます-しかし、さらに具体的な質問があれば、質問する必要はなく、自分が知らないことをgoogle/bingで確認するだけです。知る。ご覧のとおり、私のGuiceの知識はひどく劣化しているため、自分の手書きも認識できません

4

3 に答える 3

21

Peterが言うように、GuiceとAspectJはまったく別のものです。Guiceは依存性注入を行い、コードを柔軟でテストしやすくし、スコープなどの便利なものを追加しながら、ファクトリ書き込みを大幅に節約します。また、メソッドインターセプトを介してAOPを実行する非常にシンプルで簡単な方法を可能にします(DSLではなく、インターセプトされるメソッドのプログラム構成を使用)。これは事実上、それが提供するもう1つのボーナスであり、その主要な目標ではありません。

AspectJがJavaにマージされない理由については...多くの人がそれを望んでいるとは思えません。AOPは強力ですが、危険な方法です。確かにいくつかの用途には最適であり、そのような場合はコードを大幅に簡素化しますが、使いすぎると、プログラムで何が起こっているのかを理解するのが非常に難しくなる可能性があります。

于 2010-08-19T21:45:08.003 に答える
7

私によると、AspectJとGuiceは異なることをします。

Guiceは依存関係を注入し、AspectJは横断的関心事に対処します。

Springを使用する場合、オーバーラップが多すぎるため、Guiceを使用する価値は実際には低くなり、Spring/AspectJの共生は説得力のあるソリューションになります。

私は個人的に、軽量であるため、春以外のプロジェクトにはguiceの方が好きです。

于 2010-08-19T20:49:52.163 に答える
2

Springは、依存性注入とアスペクト指向プログラミングに基づいて構築されています。

Guiceは依存性注入エンジンです。

AspectJはアスペクト指向エンジンです。

違いを見ます?GuiceとAspectJは補完的です。春にはすでに両方があります。

Springは、AspectJに加えて、バイトコード操作を必要としない独自のインターセプターベースのAOPをサポートしていることに注意してください。

于 2010-08-19T22:34:17.283 に答える