複数のパッケージにシングルポイントカットを指定する方法
-
29-10-2019 - |
質問
春のMVCベースのアプリケーションでのロギングアクティビティにアスペクトを使用しています。私は使っている @コントローラ 私のアプリケーション内のコントローラーを定義するための注釈。 2つの異なるパッケージに2つの異なるコントローラーがあります
- com.package1にはコントローラー1クラスが含まれています。それをacontrollerに名前を付けましょう
- com.package2にはコントローラー2クラスが含まれています。BControllerに名前を付けましょう
使用することにより、特定のコントローラーのパッケージにアスペクトを適用できます
<aop:config>
<aop:pointcut id="pointcut1"
expression="execution(* package1.*.*(..))"
id="policy1" />
<aop:aspect ref="aspect1" order="1">
<aop:before pointcut-ref="pointcut1" method="before" arg-names="joinPoint" />
<aop:after-returning returning="returnValue" arg-names="joinPoint, returnValue" pointcut-ref="pointcut1" method="after" />
</aop:aspect>
</aop:config>
<bean id="aspect1" class="com......aspectclass" />
私の質問は、1つの異なるパッケージをより多く指定する方法です 式(* package1。..(..))**.
今、私は各パッケージとアスペクトで1つの別々の1つの個別のポイントカットを宣言しています aop:before
と aop:after
各ポイントカットのエントリ。しかし、これは複数のパッケージを定義する理想的な方法であるべきだと思います。
正しい解決策はありません
所属していません StackOverflow