「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()