5.Aspect 구성 요소
1. Aspect의 구성 요소
하나의 Aspect는 다음의 요소들로 구성됨
1-1. Advice
Advice는 AOP를 적용하여 실제 동작시킬 코드
위 맥락에서는 로깅 처리 코드라고 볼 수 있음
Sample.java
log.debug(joinpoint.getTarget()...);1-2. JoinPoint
조인 포인트란 **애플리케이션이 동작하는 과정에서 Advice를 적용시킬 수 있는 지점,**을 말함
→ 대상 메서드에 대한 정보를 가지고 있음
Spring AOP 프레임워크로는 메서드에 지정 가능
LoggingAspect.java
@Before(value = "execution(* dev.syntax.aop.service.*ServiceImpl.*(..))")
public void logBefore(JoinPoint joinPoint) {
log.debug(joinpoint.getTarget()...);
}→ joinpoint를 통해 대상 메서드에 전달된 정보 취득
1-3. PointCut expression(PointCut 표현식)
포인트컷 표현식이란 실제 동작시킬 코드인 Advice를 적용할 JoinPoint를 지정하는 규칙, 조건을 말함
여기서 PointCut은 @Before() 내부에 value = “execution”로 작성된 패턴 부분을 의미함
LoggingAspect.java
@Before(value = "execution(* dev.syntax.aop.service.*ServiceImpl.*(..))")
public void logBefore(JoinPoint joinPoint) {
log.debug(joinpoint.getTarget()...);
}1-4. Target
대상 객체(Target Object)라고도 하며, Advice를 적용할 대상 메서드나 클래스
이 맥락에서 Target은 위에서 작성된 PointCut 규칙에 의해 클래스 이름이 ~ServiceImpl로 끝나는 모든 클래스들이 대상 객체(Target Object)라고 볼 수 있음
Last updated on