1

私はSpring 3.0.5を使用していますが、@Aspectステレオタイプでアノテーションが付けられたアスペクトクラスを何らかの方法でロードから除外することが可能かどうか疑問に思っていましたが、同時に、他のアスペクトアノテーション付きクラスを含めましたか? あなたが注釈ルート(私はそうです)に行くなら、それはすべてか無かのようです。

この理由は、アスペクトを含む中央のコア ライブラリがあるためですが、この中央ライブラリを使用して作成するすべてのプロジェクトにこれらのアスペクトを含めたくない場合があります。

ありがとう。

4

1 に答える 1

1

これは答えが長いです...

Spring AOP で AspectJ アノテーションを使用していて、AspectJ ランタイムまたはコンパイル時のウィービングを使用していない場合は、幸運です。@Component などのアノテーションが付けられている場合、Spring は @Aspect アノテーションが付けられたクラスのみを取得します。Spring は @Aspect をコンポーネント スキャンの候補とは見なしません。XML 構成を使用している場合は、構成からその Bean を削除するだけです。

コア ライブラリにヒットするコンポーネント スキャンを使用しないことをお勧めします。たとえば、アプリが com.example.myapp1 で、コア ライブラリが com.example.corelibrary.* の場合、コンポーネント スキャンで com.example.myapp1 のみを調べ、com.example を調べないようにしてください。

この正確な理由により、アプリのベース パッケージの外でコンポーネント スキャンを行うのは安全ではありません。Bean の XML 構成を使用して、個々の側面を取り込みます。

于 2011-12-06T19:12:53.333 に答える