"2-1에서 핵심 관심 , 횡단 관심에 대해서 배웠다... 간단하게 요약하자면 핵심 관심이 실행 될 때, 어떤 타이밍에 횡단 관심을 실행 시킬지에 대해서 스프링 설정 파일에 등록할지가 중요한 것 같다."
2.1 AOP 용어 정리(★ 개념어 정리 중요)
2.1.1 조인 포인트(Join point)
: 조인 포인트는 클라이언트가 호출하는 모든 비즈니스 메소드 이다.
2.1.2 포인트컷(Point cut)
: 2.1.1의 조인 포인트 중에 필터링 된 조인포인트(= 필터링 된 비즈니스 메소드)를 의미한다.
" 예를 들어 BoardServiceImpl 중에 insert, delete, update 가 실행 될 때. 횡단 관심 로직이 실행 된다면, BoardServiceImpl 메소드 5개(조인 포인트) 중에 insert, delete, update 만 포인트 컷이 되는 것이다."
# 첨부파일 1. 포인트 컷을 활용한 AOP 설정
"스프링 설정 파일 내에 포인트 컷을 설정한 것을 알 수 있다. 특히 expression의 설정을 통해서 포인트컷과 조인 포인트의 의미를 알 수 있게 된 듯 하다.. 빨간박스 주목.. ;; 리턴타입-패키지명-클래스명-메소드명을 통해 포인트컷을 지정하고 있다. 즉, get으로 시작하는 메소드는 포인트 컷이 되고, 그 이외의 메소드들은 조인 포인트가 되는 것이다."
# 첨부파일 2. 실제로 컨솔창의 결과 값을 보면, get으로 시작하는 메소드만 포인트 컷이 됨을 알 수 있다.
"횡단 관심/횡단 로직이 get으로 시작하는 포인트 컷에서 작동하고 있다. 참고로 #참고자료 1의 <aop:before />을 통해 핵심 로직 전(*get으로 시작하는 포인트컷 전)에 횡단 로직이 실행되게 되었다."
2.1.3 어드바이스(Advice)
: 횡단 관심에 해당하는 공통 기능의 코드 (* LogAdvice) + 공통 기능의 코드가 시행 되는 시점 (* 포인트컷 실행 전/후)
# 첨부파일 3. 포인트컷 + 횡단관심 + 횡단관심 실행 시점.
" 위 그림을 통해 어드바이스를 대략적으로 이해 할 수 있을 것 같다. Transaction(* 횡단 관심)이 포인트 컷(insert, update, delete 메소드)의 어느 시점에 시행 되느냐를 판단하는 것을 Advice라고 한다.
2.1.4 위빙(Weaving)
: 위빙을 통해서 비지니스 메소드를 수정하지 않고도 횡단 관심에 해당하는 기능을 추가하거나 변경할 수 있다.
2.1.5 애스팩트 또는 어드바이저(*애스팩트에 대한 정의)
"애스팩트는 결국 포인트 컷과 어드바이스의 결합이다. 즉, 어떤 포인트 컷 메소드에 어떤 어드바이스 메소드(횡단관심)를 실행할지 결정하는 것이다.. 아래 실습 자료를 보면서, AOP를 해석해 보자"
#첨부자료 1. LogAdvice-횡단관심, application.xml-스프링 설정파일
" 클라이언트측이 비지니스 메소드를 호출하기 시작한다. → id="getPointcut"의 포인트컷이 시행되는 이전 시점 → id="log"의 pringLog 메소드(횡단 관심)가 실행된다. 첨부자료1을 보고 생각한 내 해석..;;"
: id="getPointcut"으로 설정한 포인트컷 메소드가 호출 됨.(빨간색) → ref="log"라는 어드바이스 객체(파란색)의 printLog 메소드(노란색)가 실행 됨 → printLog 메소드의 실행 시점은 포인트컷 before이다.
이제 뒤 에서는 AOP 관련된 스프링 설정 파일의 엘리먼트에 대해서 배워본다.
'자바 > SpringFrameWork' 카테고리의 다른 글
[스프링퀵스타트2-2] : 스프링 AOP-어드바이스의 동작 시점(P. 171 ~ ) (0) | 2020.06.02 |
---|---|
[스프링퀵스타트2-2] : 스프링 AOP (P. 164 ~ ) (0) | 2020.05.31 |
[스프링퀵스타트2-1] : 스프링 AOP (P. 143 ~ ) (0) | 2020.05.29 |
[스프링퀵스타트1-5] : 어노테이션 기반 설정-(1) (0) | 2020.05.22 |
[스프링퀵스타트1-4] : 의존성 주입-(4) (0) | 2020.05.22 |