조인 포인트 (Join Point)
- 애플리케이션의 실행 흐름에서의 AOP를 적용할 수 있는 모든 특정 지점
- 스프링 컨테이너가 관리할 수 있는 스프링 빈에만 AOP 적용 가능
- 항상 메서드 레벨에만 AOP 적용 가능
( 스프링 AOP가 프록시 방식 사용하기 때문 )
어드바이스 (Advice)
- 특정 조인포인트(Join Point)에서 수행될 부가기능을 정리한 코드
- 핵심 코드(Target)에 Aspect를 언제 적용할지 정의
포인트컷 (Pointcut)
- 조인포인트(Join Point)에서 어드바이스(Advice)가 적용될 위치를 선별하는 기능
( 애플리케이션 실행 흐름에서 AOP를 적용할 수 있는 모든 포인트에서 수행될 부가기능 코드의 위치를 선별하는 기능 ) - 관심 조인포인트를 결정 ➜ 어드바이스가 실행되는 시기 제어 가능
어드바이저 (Advisor)
- 하나의 어드바이스(Advice) + 하나의 포인트컷(Pointcut) 으로 구성
( 수행 코드(부가기능) + 그 코드의 위치 선별 기능 )
이 AOP는 프로젝트 내의 여러 객체에 공통으로 적용되는 기능(Aspect)들만 기능별로 따로 묶어, 프록시 객체를 만들어서 한번에 처리하는 기법이다.
이 때 따로 묶은 Aspect들은 그 기능을 어디에(어느 타겟에) 적용할 지 써줘야하는데
( 타겟 - 따로 묶은 공통 기능들을 넣어줄 핵심 기능 )
이는 포인트컷을 활용하여 그 기능을 어느 위치에 넣을 건지 정해줄 수 있고,
어드바이스를 활용하여 언제 넣을 건지 정해줄 수 있다.
( Ex. 메서드 호출 전, 필드값 변경 후 등 )
여기서, AOP가 적용될 수 있는 모든 지점을 조인포인트라고 하고,
그러므로 AOP가 적용될 수 있는 지점 == 포인트컷을 넣을 지점이 되기 때문에
즉, 포인트컷을 활용할 수 있는 모든 지점을 조인포인트라고 할 수 있다.
'Everyday Study' 카테고리의 다른 글
2024.08.28(수) { Aspect 적용 시점, 메서드 매처(Method Matcher)와 클래스 필터 } (0) | 2024.08.28 |
---|---|
2024.08.27(화) { 포인트컷 익스프레션, 정적&동적 매칭, @Qualifier, @CustomAnnotation } (0) | 2024.08.27 |
2024.08.23(금) { AOP Alliance, 외워야할 정보 } (0) | 2024.08.23 |
2024.08.22(목) { Qualified Name, @DirtiesContext, 체이닝 메서드, MOCK } (0) | 2024.08.22 |
2024.08.21(수) { enum 클래스의 자동생성되는 것, InvocationHandler } (0) | 2024.08.21 |