두 가지 방법 중 먼저 스프링 프레임워크에서 제공하는 API를 이용한 AOP기능을 살펴보겠습니다. AOP기능을 구현하는 과정은 다음과 같습니다.
- 타깃(Target) 클래스를 지정합니다.
- 어드바이스(Advice) 클래스를 지정합니다.
- 설정 파일에서 포인트컷(Pointcut)을 설정합니다.
- 설정 파일에서 어드바이스와 포인트 컷을 결합하는 어드바이저를 설정합니다.
- 설정 파일에서 스프링의 ProxyFactoryBean 클래스를 이용해 타깃에 어드바이스를 설정합니다.
- getBean() 메서드로 빈 객체에 접근해 사용합니다.
그리고 스프링 프레임워크에서 제공하는 메서드를 호출했을 때 AOP 기능을 수행하는 어드바이스 인터페이스들의 추상 메서드 기능을 정리했으니 참고하기 바랍니다.
인터페이스 | 추상 메서드 | 설명 |
MethodBeforeAdvice | void before(Method method, Object[] args, Object target) throws Throwable | 해당 메서드가 실행되기 전 실행 |
1. Method method: 대상 객체에서 실행된 메서드를 나타내는 메서드 객체 2. Object[] args: 메서드 인자 목록 3. Object target: 대상객체 |
||
AfterReturningAdvice |
void afterReturning( Object returnValue, Method method, Object[] args, Object target) throws Throwable |
해당 메서드가 실행된 후 실행 |
1. Object returnValue : 대상 객체의 메서드가 반환하는 값 2. Method method: 대상 객체에서 실행된 메서드를 나타내는 메서드 객체 3. Object[] args: 메서드 인자 목록 4. Object target: 대상객체 |
||
ThrowsAdvice |
void afterThrowing( Method method, Object[] args, Object target, Exception ex) |
해당 메서드에서 예외 발생시 실행 |
1. Method method: 대상객체에서 메서드를 나타내는 메서드 객체 2. Object[] args: 메서드 인자 목록 3. Object target: 대상 객체 4. Exception ex: 발생한 예외 타입 |
||
MethodInterceptor |
Object invoke( MethodInvocation invocation) throws Throwable |
해당 메서드의 실행 전/후와 예외 발생 시 실행 |
MethodInvocation invocation: 대상 객체의 모든 정보를 담고 있는 객체(호출된 메서드, 인자 등) |
이 중 인터페이스 MethodInterceptor는 invoke() 메서드를 이용해 다른 세 가지 인터페이스들의 기능을 동시에 수행할 수 있습니다.
다음 글에서는 직접 실습해 보겠습니다.
'2020 > SPRING' 카테고리의 다른 글
스프링 프레임워크 MVC 특징 (0) | 2020.01.08 |
---|---|
스프링 API를 이용한 AOP 기능 실습 (0) | 2020.01.08 |
Spring AOP기능 (0) | 2020.01.07 |
회원 기능 이용해 DI 실습 (0) | 2020.01.07 |
Spring 생성자를 이용한 DI 기능 (0) | 2020.01.07 |