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); }