본문 바로가기

Spring

AOP 정리3

# 예시로 시간을 측정 할 것이다.시간을 측정하고 싶은 메소드들에 @EXAMPLEANNO 를 붙여준다.

# annotaion EXAMPLEANNO 클래스 를 생성하고, @Target을 붙여준다.

----------------------------------------------------------------------------------------------

# ASPECT 정의하기

 - 클래스를 생성하여 @Asepct 어노테이션을 추가하여 Aspect를 생성한다. 스프링은 자동으로 이 클래스를 Spring AOP 설정에 반영한다.

 

# PointCut 정의하기

 - JointPoint (결합점) , Advice 를  설정 

      ㄴ  Advice 가 언제 실행되는지 정하는 방법이다.

            - @Around( @annotation(EXAMPLEANNO)) 을 붙인 메소드를 생성한다.

            - EXAMPLEANNO라는 어노테이션을 타겟으로 지정했고, 그 주변에서 실행되는 결합점 @around로 설정한것

--------------------------------------------------------------------------------------------------------------------

예시

@Aspect 

public class ASPECTEXAMP{

   @Around ( @Annotaion ( EXAMPLEANNO) )

   public Object adviceexample ( ProceedingJoinPoint joinpoint )

   {

       함수                        // 곁관심

       joinpoint..proceed();    // 주된관심

       함수                       //곁관심

   }

 } 

--------------------------------------------------------------------------------------------------------------------

 

이제 실행해보면 , Target 인  @EXAMPLEANNO가 있는 함수가

@Aspect 내부의 함수에서 곁관심사이에서 실행되는것을 볼 수 있다.