Spring AOP 용어 정리

SionBackEnd·2022년 8월 17일
0

Spring(봄)

목록 보기
9/22
post-thumbnail

Aspect

  • 여러 객체에 공통으로 적용되는 기능(공통 기능)
  • Advice + Pointcut을 모듈화하여 애플리케이션에 포함되는 횡단 기능이다.
  • 여러 어드바이스와 포인트컷이 함께 존재한다.

Join Point

  • 애플리케이션 실행 흐름에서 클래스 초기화, 객체 인스턴스화, 메소드 호출, 필드 접근, 예외 발생 등과 같은 실행 흐름에서의 특정 포인트들이 있다. 이러한 포인트들이 조인 포인트라고 칭한다.
  • 애플리케이션에 새로운 동작을 추가하기 위해 조인포인트에 관심 코드(aspect code)를 추가할 수 있다.

Advice

  • 조인포인트에서 수행되는 코드를 의미한다.
  • Aspect를 언제 핵심 코드에 적용할 지를 정의한다.

Pointcut

  • 조인 포인트 중에서 어드바이스가 적용될 위치를 선별하는 기능이다.
  • AspectJ 표현식을 사용해서 지정한다.
  • 프록시를 사용하는 스프링AOP는 메서드 실행 지점만 포인트컷으로 선별 가능하다. (스프링AOP와 AspectJ는 다른것이다.)

Weaving

  • 포인트컷으로 결정한 타겟의 조인 포인트에 어드바이스를 적용하는 것이다.
  • 핵심 기능 코드에 영향을 주지 않고 부가 기능을 추가 할 수 있다.
  • AOP 적용을 하는 방법은
    - 컴파일 타임(AspectJ compoiler)
    - 로드 타임
    - 런타임, 스프링 AOP는 런타임, 프록시 방식이다.

AOP 프록시

  • AOP 기능을 구현하기 위해 만든 프록시 객체이다.
  • 스프링에서 AOP프록시는 JDK 동적 프록시 또는 CGILB 프록시이다.

Target

  • 핵심 기능을 담고 있는 모듈로 타겟은 부가기능을 부여할 대상이된다.
  • Adivce를 받는 객체이고 포인트컷으로 결정된다.

Advisor

  • 하나의 어드바이스와 하나의 포인트 컷으로 구성된다.
  • 스프링 AOP에서만 사용되는 특별한 용어이다.
profile
많은 도움 얻어가시길 바랍니다!

0개의 댓글