스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저를 만들어서 스프링빈으로 등록하면된다.
그러면 나머지는 아ㅠ서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록시 생성기는 스프링 빈으로 등록된 어드바이저들을 찾고
스프링 빈들에 자동으로 프록시를 적용해준다.
스프링은 @Aspect 어노테이션으로 매우 편리하게 포인트컷과 어드바이스로 구서오디어 있는 어드바이저 생성 기능을 지원한다.
//어드바이저
@Around("execution(* hello.proxy.app..*(..))")//포인트컷
public Object execute(ProceedingJoinPoint joinPoint) throws Throwable{
//어드바이스
TraceStatus status = null;
try{
String message= joinPoint.getSignature().toShortString();
status = logTrace.begin(message);
//로직 호출
Object result =joinPoint.proceed();
logTrace.end(status);
return result;
}catch (Exception e){
logTrace.exception(status, e);
throw e;
}
}
자동 프록시 생성자는 advisor를 만들어주는 것 이외에 하나더 기능이 있는데 @Aspect를 찾아서 이걸 advisor로 만들어준다.
자동 프록시 생성자는 두가지 일을 하는것
1. @Aspect를 보고 어드바이저로 변환해서 저장한다.
2. 어드바이저를 기반으로 프록시를 생성한다.