Spring AOP용어의 정리

FRAMEWORK/SPRING 2013. 7. 11. 15:06

Spring AOP용어의 정리


- JointPoint

 + 모듈이 삽입되어 동작할수 있는 실행 가능한 특정 위치 (메소드호출,리턴,필드 액세스,인트턴스 생성, 예외 처리)

- PointCut

 + 어느 JointPoint를 사용할 것인지를 결정 하는 선택 기능(Pattern Matching Examples,Pointcut Designators)

- Advice

 + 각 JoinPoint에 삽입되어져 동작할 수 있는 코드(동작시점: before, after, after returning, after throwing, around 중에서 선택)

- Aspect

 + 어디에서(Pointcut) 무엇을 할 것인지(Advice)를 합쳐놓은 것을 말한다.



=============================================================================================



◎ Advice : 언제 무엇을 할지 나타냅니다. 즉 애스펙트가 해야하는 작업과 언제 그 작업을 수행해야 하는지를 정의한 것이 어드바이스 입니다. (실제로 Target 객체에 적용할 일을 나타냄.)


◎ Joinpoint : Advice를 적용할 시점을 말합니다. (생성자 호출, 필드에 접근, 필드의 값 변셩, 메소드 호출등의 시점.) Spring AOP는 메소드 호출 Joinpoint만 지원합니다.


◎ Pointcut : Joinpoint의 부분집합으로 애스펙트가 어드바이스 할 조인포인트의 영역을 좁히는 일을합니다.


◎ Advisor : 하나의 Advice와 하나의 Piontcut을 묶은 것. Aspect는 여러개의 Advice와 Pointcut을 가지고 있는 것을 말합니다. 즉 Advisor도 하나의 Advice와 Pointcut을 가지고 있는 Aspect라고 할 수 있습니다.


◎ Aspect : Advice + Pointcut 

어드바이스와 포인트컷을 합친 것이 애스펙트 입니다. 두가지 정보가 합쳐지면 애스팩트가 무엇을 언제해야할지, 즉 애스펙트에 필요한 모든 정보가 정의됩니다.


◎ Introduction : 기존 클래스의 코드 변경 없이도 새 메소드나 멤버변수를 추가하는 기능입니다.


◎ Target : Advice의 대상이 되는 객체를 말합니다.


◎ Proxy : 프록시 객체

Spring AOP는 Proxy객체를 사용합니다. 프록시는 어드바이스를 타깃 객체에 적용하면 생성되는 객체입니다.


◎ Weaving : Target 객체에 Aspect를 적용하는 과정.

타깃 객체에 애스펙트를 적용해서 새로운 프록시 객체를 생성하는 절차를 위빙이라고 합니다. 애스펙트는 타깃 객체의 조인포인트로 위빙됩니다. 

위빙은 대상 객체의 생애중 컴파일 시점, 런타임 시점, 클래스 로딩 시점에 할 수 있는데, Spring AOP는 런타임시에 동시적으로 Proxy객체를 생성합니다.

: