목차
- BeanPostProcessor - 하나의 프록시에 여러개의 Advisor 적용
- BeanPostProcessor
- Spring 핵심원리 고급편 - ProxyFactory 적용
- Spring 핵심원리 고급편 - 여러 Advisor 와 함께 적용
- Spring 핵심원리 고급편 - Spring 에서 제공하는 Pointcut
- Spring 핵심원리 고급편 - Pointcut 만들기
- Spring 핵심원리 고급편 - Advisor
- Spring 핵심원리 고급편 - MethodInterceptor
- Spring 핵심원리 고급편 - ProxyFactory
참고
본 포스트는 김영한의 스프링 핵심 원리 - 고급편 내용을 참고해 만들었습니다.
Advisor
Advisor는 Spring AOP에서 Advice, Pointcut, Advisor의 개념을 쉽게 사용할 수 있도록 제공합니다.
Advice 는 메소드를 실행하기 전, 후, 혹은 예외가 발생했을 때 실행되는 부가 기능을 말하며, Pointcut 은 Advice가 적용될 메소드를 선택하는 기준입니다. Advisor 는 Advice 와 Pointcut 을 결합한 것으로, 어떤 메소드에 어떤 Advice 를 적용할지를 결정합니다.
- PointCut (포인트 컷)
- 어디에 부가 기능을 적용할지 적용하지 않을지 판단하는 필터링 로직
- 클래스 이름과 메서드 이름을 이용해 필터링 한다.
- Advice (어드바이스)
- 프록시가 호출하는 부가 기능
- Advisor (어드바이저)
- 단순하게 하나의 포인트 컷 과 하나의 어드바이스 를 갖고 있는 것
DefaultPointcutAdvisor
DefaultPointcutAdvisor
은 Advisor 의 기본 구현체입니다. 부가 기능을 어디에 적용할지 Pointcut 과 부가 기능 Advice 를 인자로 Advisor 객체를 생성하고 ProxyFactory 객체 addAdvisor
메소드들 이용해 Advisor 를 적용한다.
public class DefaultPointcutAdvisor extends AbstractGenericPointcutAdvisor implements Serializable { |
Advisor 생성 및 적용
ServiceInterface target = new ServiceImpl(); |
22:40:35.135 [Test worker] INFO hello.proxy.common.advice.TimeAdvice - TimeProxy 실행 |