web-dev-qa-db-ja.com

Springaopによる戻り値の変更方法

DAOレイヤーに戻り値を持つメソッドがあります。さまざまな要件に応じて、Spring AOPまでに戻り値を変更してから、SERVICEレイヤーの対応するメソッドに送信します。しかし、私はそうする方法がわかりません。

17
cleverUtd

戻り値の型を変更する必要があるメソッドに_@Around_アスペクトを適用できます。 Spring AOPファセットをSpringアプリケーションに追加する方法について、私の ブログ投稿 を見てから、_@Around_アスペクトを記述してください。メソッドのMemoizing結果にこのアスペクトを使用しましたが、あなたの場合は、ProceedingJoinPoint.proceed()の戻り値を取得し、適切なクラスにタイプキャストしてから、変更して返します。

まったく異なるオブジェクトを返すことを計画している場合、実際に返されるオブジェクトが戻り値の型のサブクラスでない限り、ClassCastExceptionが発生します。

19
Vikdor