반응형
@Aspect 어노테이션
*Aspect 클래스 선언할 때 @Aspect 어노테이션을 사용한다.
*AspectJ 5버전에 새롭게 추가된 어노테이션이다.
*@Aspect 어노테이션을 이용할 경우 XML 설정 파일에 어드바이스와 포인트 컷을 설정하는 것이 아니라 클래스 내부에
정의할 수 있다.
*<aop:aspectj-autoproxy> 태그를 설정파일에 추가하면
@Aspect 어노테이션이 적용된 Bean을 Aspect로 사용 가능하다.
Aspect 클래스 선언 및 설정
1.클래스 선언부에 @Aspect 어노테이션을 정의한다.
2.이 클래스를 애스펙트로 사용하려면 Bean으로 등록해야 하므로 @Component 어노테이션도 함께 정의한다.
3. XML 설정파일에 <aop:asepctj-autoproxy />선언해야한다.
Advice를 정의하는 어노테이션
@Before("pointcut") |
타겟 객체의 메서드가 실행되기 전에 호출되는 어드바이스 JoinPoint를 통해 파라미터 정보를 참조할 수 있다. |
@After("pointcut") |
타겟 객체의 메서드가 정상 종료됐을 때와 예외가 발생했을 때 모두 호출되는 어드바이스 리턴값이나 예외를 직접 전달받을 수는 없다. |
@Around("pointcut") | 타겟객체의 메서드가 호출되는 전 과정을 모두 담을 수 있는 가장 강력한 기능을 가진 어드바이스 |
@AfterReturning(pointcut="",returning="") |
타겟 객체의 메서드가 정상적으로 실행을 마친후에 호출되는 어드바이스 리턴값을 참조할 때는 returnong 속성에 리턴값을 저장할 변수 이름을 지정해야 한다. |
@AfterThrowing(pointcut="",throwing="") |
타겟 객체의 메서드가 예외가 발생하면 호출되는 어드바이스 발생된 예외를 참조할 때는 throwing 속성에 발생한 예외를 저장할 변수 이름을 지정해야 한다. |
반응형
'프레임워크 > Spring' 카테고리의 다른 글
서블릿(Servlet) (0) | 2023.09.24 |
---|---|
Mybatis (0) | 2020.01.14 |
AOP(2) (0) | 2020.01.12 |
AOP(Aspect Oriented Progamming) (0) | 2020.01.11 |
사용자관리 프로젝트 (0) | 2020.01.08 |