[解決済み] Spring AOPでメソッドの引数を取得する?
2023-06-07 14:39:44
質問
Spring AOPを使用しており、以下のような局面があります。
@Aspect
public class LoggingAspect {
@Before("execution(* com.mkyong.customer.bo.CustomerBo.addCustomer(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("logBefore() is running!");
System.out.println("hijacked : " + joinPoint.getSignature().getName());
System.out.println("******");
}
}
上のアスペクトは、インターセプト
addCustomer
メソッドの実行を妨害します。
addCustomer
メソッドは入力として文字列を受け取ります。
しかし、私は
addCustomer
メソッドの内部で
logBefore
メソッドを使用します。
というのは可能なのでしょうか?
どのように解決するのですか?
いくつかのオプションがあります。
まず
JoinPoint#getArgs()
を返すメソッドを使います。
Object[]
を返し、アドバイスされたメソッドのすべての引数を含んでいます。あなたがそれらでやりたいことに応じて、いくつかのキャストを行う必要があるかもしれません。
第二に、あなたは
args
のようなポイントカット式があります。
// use '..' in the args expression if you have zero or more parameters at that point
@Before("execution(* com.mkyong.customer.bo.CustomerBo.addCustomer(..)) && args(yourString,..)")
であれば、メソッドは次のように定義できます。
public void logBefore(JoinPoint joinPoint, String yourString)
関連
-
プロジェクトの依存関係を解決できない。
-
ApplicationContextの起動エラーです。条件レポートを表示するには、アプリケーションを'de'で再実行します。
-
無効な文字定数
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Java:未解決コンパイル問題の解決方法
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Jsoup-Crawlingの動作
-
Uncaught ReferenceError: は定義されていません。
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
SocketException java.netの4つの例外解決策。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがテキストファイルを読み込む
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。