Aspect
- 여러 객체에 공통으로 적용될 수 있는 공통 기능
- Advice, Pointcut을 모듈화하여 애플리케이션에 프록시를 만들어 적용하는 방법으로 구현한다.
Advice
- JointPoint에서 수행되는 코드
- Aspect를 언제 적용할지 정의하는 코드
- Advice
Join Point
- 클래스 초기화, 객체 인스턴스화, 메서드 호출, 필드 접근, 예외 발생과 같은 애플리케이션 흐름 속에서의 특정 포인트를 의미한다. 즉 Aspect를 적용할 수 있는 애플리케이션 내 모든 포인트를 가르킨다. 개념에 가깝다.
- 포인트의 전/후를 나누어 Aspect를 적용시킬 수 있다.
- 다만 Spring AOP는 프록시를 사용하므로 Join Point는 메서드 실행 지점으로 제한된다. 따라서 어드바이스는 Spring 애플리케이션 내에 동작하는 메서드의 전과 후에 적용될 수 있다.
- Spring 컨테이너는 Spring AOP에 의존적이지 않기 때문에 AOP를 원하는 때에만 선택하여 사용할 수 있다.
Pointcut