[Spring] AOP with Annotaion

zini9188·2023년 2월 9일
0

Spring

목록 보기
13/33

@AspectJ 지원

애너테이션이 있는 일반 Java 클래스로 관점을 선언하는 스타일을 지칭

  • pointcut 구문 분석 및 일치를 위해 AspectJ가 제공하는 라이브러리를 사용하여 AspectJ 5와 동일한 애너테이션을 해석

  • AOP 런타임은 여전히 순수한 스프링 AOP이며, AspectJ 컴파일러나 위버에 의존하지 않음

AspectJ 사용법

Java 설정으로 @AspectJ 사용하기

@Configuration
@EnableAspectJAutoProxy
public class AppConfig{

}

Xml 설정으로 @AspectJ 사용하기

<aop:aspectj-autoproxy/>

Aspect 선언

@Aspect 지원이 활성화되면 @Aspect 애너테이션이 있는 클래스로 애플리케이션 컨텍스트에 정의된 모든 빈이 스프링에서 자동으로 감지되고 스프링 AOP를 구성하는 데 사용됨

<bean id="myAspect" class="org.xyz.NotVeryUsefulAspect">
    <!-- configure properties of the aspect here -->
</bean>
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class NotVeryUsefulAspect {

}

포인트컷 선언

  • 포인트컷은 관심 조인 포인트를 결정하므로 어드바이스가 실행되는 시기를 제어할 수 있음

  • 이름과 매개변수를 포함하는 서명과 관심 있는 메서드 실행을 정확히 결정하는 pointcut 표현식의 두 부분으로 구성

어드바이스 선언

  • 포인트컷과 일치하는 메서드 실행 전후 또는 전후에 실행
profile
백엔드를 지망하는 개발자

0개의 댓글