해결된 질문
작성
·
252
2
안녕하세요.
관점지향프로그래밍에서 스프링 AOP를 사용한다면
Aspect, Target, Advice, Join point, Pointcut에 대한 이해가 필요함에 따라 각각의 의미를 강의를 통해 이해한데로 적어봅니다.
'EventService'를 구현한 클래스 'SimpleEventService'가 있고 create(), publish(), delete() 총 3개의 메소드를 재정의 한 상황에서 각각의 메소드 실행시 '성능에 대한 로그(공통관심사)'를 출력해야 할 때
이를 AOP 주요 개념으로 해석해 보면 ,
Aspect(모듈) - 공통관심사'들'을 정의해 놓은 Class, 강의에서는 'PrefAspect' Bean.
Target - 공통관심사가 적용이 될 대상(* 프로젝트에 존재하는 모든 Class는 타겟이 될 수 있는 것인지 궁금합니다.)
Advice - 모듈(Aspect) 안에서 정의된 공통관심사(로그), 강의에서는 'PrefAspect' bean의 'logPref'() 또는 'hello()'
Pointcut - 공통관심사가 적용이 될 위치, Target(Class)에 대한 특정 행위(Method)의 실행 시점을 의미
Joinpoint - 합류점, 가령 'SimpleEventService'의 특정 메소드 실행 전, 실행 후 등..(@Before, @Around와 같은 어노테이션을 의미)
제가 생각한 개념이 맞는지 조언 부탁드립니다.
(AOP는 반복학습을 해야겠습니다.)
미리 답변 감사드립니다.