Spring5.2.6でAOP(Aspect Oriented Programming)の使い方(pom設定、アノテーションの書き方など)
pom.xmlにライブライを追加する
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.2.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.2.6.RELEASE</version> </dependency>
アノテーションの使い方
1.@Before
メソッド実行前に実行される。
@Before("execution(* com.arkgame.study..*(..))")
public void before(JointPoint jpt){
//some code
}
2.@After
メソッド実行後に実行される。
@After("execution(* com.arkgame.study..*(..))")
public void after(JointPoint jpt){
//some code
}
3.@AfterReturning
メソッドの処理が正しく終了した場合に実行される。
@AfterReturning(value = "execution(* com.arkgame.study..*(..))", returning = "cft")
public void afterReturning(Object cft){
System.out.println(cft);
}
4.@AfterThrowing
メソッドの処理中に例外が発生した場合に実行される。
@AfterThrowing(value ="execution(* com.arkgame.study..*(..))",throwing="e")
public void afterThrowing(Exception e){
System.out.println("exception message:"+e.toString());
}
5.@Around
メソッド実行前に呼ばれ、この中でメソッドを実行する。
@Arround("execution(* com.arkgame.study..*(..))")
public void around(ProceedingJoinPoint pjp) thrwos Throwable{
String result=(String)pjp.proceed();
System.out.println(result);
}