본문 바로가기

Spring

AOP 핵심비즈니스에 붙일 어노테이션 사용해서 만들기

1. 컨트롤러에 있는 함수들에 @LogExecutionTime 어노테이션을 붙여준다. (핵심비지니스로직)

 

2. create annotation 해준다.

3.@LogExecutionTime 을 만들것이다.

4. 어노테이션 만들때 @Target 지정 , @Retention 붙이기 //어노테이션 정보 언제까지유지할것인가

 

5-1. 이제되는가?

      아니다.

      어노테이션은 주석이랑 같다 그냥 주석이다.

      이제 이거를 읽어서 처리해줄 로직코드가 필요하다.

 

5-2 그것이 Aspect 이다.  (porxy패턴기반으로 실행된다.)

 

 @Component  //Bean으로 등록되어야 하기 떄문에.

 @Aspect       //advice + pointcut이 있다.

 public class LogAspect{

    /**Advice등록**/

    Logger logger= LoggerFactory.getLogger(LogAspect.class);

    @Around("@annotation(LogExecutionTime)")  //이걸 붙인 메소드는joinpoint라는 파라미터를 받을수 있음

     public Object logExecutionTime(ProceedingJoinPoint joinPoint)thorws Thorwable{  //joinPoint는 @LogExecutionTime이라는 어노테이션이다.

         

          Object proceed=joinPoint.proceed();         //종단관심 실행

 

         stopWatch .stop();

         return proceed;

   }

 

 }

 

 

 

 

 

 

 

 

 

tip_

  ` pointcut : joinpoint를 설정하여 Advice가 언제 실행될지 설정하는것

  ` aspect   : pointcut + advice