[Spring Boot]のアスペクト(AOP)を使ってメソッドの処理前後にログ出力

内容

アスペクト(AOP)を使ってメソッドの処理前後にログを出力する。

(当初はMethodInterceptorを使う予定だったが、やりたいことがそもそもAOPで、AOPの使い方が簡単だったのでAOPで実装)

 

src

pom.xml

・「spring-boot-starter-aop」 を追加

 

LogAspect.java

・「@Aspect」「@Component」のアノテーションを指定しておけば、設定ファイルは不要でクラスだけでAOP使用できる。
・「@Around」はSpringのAdviceの一つでメソッドの実行前、実行後に処理を埋め込むことが出来る。他に「@Before」「@AfterReturning」「@AfterThrowing」「@After」がある。
・アノテーションの引数でPointcutとして”(execution(* ...*(..)))を指定。内容は先頭から「戻り値」「パッケージ」「クラス名」「メソッド名」「引数」を指定。

■ Pointcutのワイルドカート

「..」: 不特定多数の任意のパッケージや引数を指定するときに使用。
「*」 : 一つの任意のパッケージやクラス名やメソッド名や引数を指定するときに使用。

log4j2.xml

・ログレベルを「debug」に設定

 

実行結果

app.log