「Spring Boot」AOP(アスペクト指向プログラミング)にメソッド名で対象のJoin Pointを選択
1.依存関係ライブラリの追加
ファイル:pom.xml
下記を追加
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
2.@Aspectアノテーションを使用する
Pointcut:実行対象のJoin Pointを選択する表現(式)のこと。
Join Pointのグループと捉えられる。
書式
@Before(“execution(* *..*Controller.create*(..))")
使用例
package com.arkgame.study; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; //アノテーション@Aspect @Aspect @Component public class AopTest { //*Controllerというクラスのcreate*メソッドで実行 @Before("execution(* *..*Controller.create*(..))") public void getMsg(JoinPoint jpt) { System.out.println("メソッド開始: " + jpt.getSignature()); } }
3.コントローラのクラス
package com.arkgame.study; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; //アノテーションRestController @RestController public class SampleController { //アノテーションGetMapping @GetMapping("/cftA") public String createUser() { return "create user sample"; } //アノテーションGetMapping @GetMapping("/cftB") public String createEmp() { return "create employee sample"; } }
4.実行結果
http://127.0.0.1:8788/cftA
結果 create user sample
http://127.0.0.1:8788/cftB
結果 create employee sample
コンソールに下記を表示
メソッド開始: String com.arkgame.study.SampleController.createUser()
メソッド開始: String com.arkgame.study.SampleController.createEmp()