2011-11-15 24 views
3

あなたは側面を持っている想像してみてアプリケーションが自動的にその側面を認識して適用するための「ブロック」ですか?簡単な使用

Spring AOPのようなフレームワークでは、<aop:aspectj-autoproxy/>を使用できますが、Springなしで同じことを行う方法はわかりません。

:他の簡単な方法では、実行時にメソッド呼び出しを傍受することができます。

+1

私はそれがAspectJの仕組みではないと思います。私はそれを思い出して、バイトコードをビルドステップとして変更したり、クラスをロードしたりすることによって、アスペクトを既存のコードに「織り込む」ことによって動作します。どちらも 'main()'メソッドから直接行うことはできません。 – millimoose

+1

(簡単な方法では、ドキュメントに記載されているカスタムクラスローダーを使用してアプリケーションコードをロードする必要があります。http://www.eclipse.org/aspectj/doc/released/devguide/ltw-configuration.html#d0e2867) – millimoose

+0

@Inerdiaコメントをありがとう、メソッド呼び出しを傍受する他の方法/ライブラリを知っていますか? (任意の種類のプロキシ...)実行時に? –

答えて

1

私はAspectJを思い出して、ビルドステップとしてバイトコードを変更したり、クラスをロードしたりすることでアスペクトを既存のコードに「組み込む」ことによって動作します。これらのどちらも簡単な方法でmain()メソッドから実行することはできません。

直接的でない方法は、ドキュメントに記載されているa custom classloaderを使用してアプリケーションコードをロードすることです。

スタンドアロンアプリケーションの場合、AspectJは恐らくまだあなたがしようとしていることを実行する最良の方法ですが、ビルド時織を使用している可能性があります。あなたのIDE、Ant、およびMavenはこれをすべてサポートする必要があります。公式文書にはhow to use the Ant tasksが含まれています。 Mavenプラグインのドキュメントはhereです。シェルスクリプトを使用してビルドする場合は、ajcコマンドを使用することもできます。 IDEプラグインに関しては、私は彼らが使い慣れているのではなく、周囲にいることを認識しているだけです。