Skip to Content
Suffering builds character
아카이브21.spring AopAOP 개요5.Aspect 구성 요소

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