Spring Boot DI/AOP

AOPで対象メソッドの引数・戻り値・メソッド名・リクエストURLを取得してみた

今回は、Aspectクラスで対象メソッドの引数・戻り値・メソッド名・リクエストURLを取得してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

IntelliJ IDEA上でGradleを使ってWeb画面のSpring Bootプロジェクトを作成してみたSpring Bootのプロジェクトを新規作成を「IntelliJ IDEA」のメニューから実施しようとしたところ、無料の「Commun...

サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから変更したプログラムである。

アスペクトクラスの内容は以下の通りで、endLogメソッド内で、対象メソッドの引数・戻り値・メソッド名・リクエストURLを取得している。



また、コントローラクラス・Formクラスの内容は以下の通り。



さらに、HTMLファイルの内容は以下の通り。



フリーランスエンジニアのエージェントは就業中でも無料で登録できるITエンジニアには、フリーランスという働き方がある。フリーランスとは、会社や団体などに所属せず、仕事に応じて自由に契約する人のこ...

その他、build.gradle、application.propertiesの内容は以下の通り。



サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)」とアクセスすると、以下の画面が表示される
サンプルプログラムの実行結果_1

2) このときのログ出力内容は以下の通りで、赤枠の引数・戻り値・メソッド名・リクエストURLが出力されていることが確認できる
サンプルプログラムの実行結果_2

3) 画面上で名前を入力し、「確認」ボタンを押下すると、以下のように、確認画面に入力した名前が表示される
サンプルプログラムの実行結果_3_1

サンプルプログラムの実行結果_3_2

4) このときのログ出力内容は以下の通りで、赤枠の引数・戻り値・メソッド名・リクエストURLが出力されていることが確認できる
サンプルプログラムの実行結果_4

要点まとめ

  • Aspectクラスで、JoinPointクラス等を利用して、対象メソッドの引数・戻り値・メソッド名・リクエストURLを取得することができる。