소소한개발팁
Published 2020. 1. 13. 23:45
AOP(3) 프레임워크/Spring
반응형

@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
profile

소소한개발팁

@개발자 뱅

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!