프로그래머의 삶 Programmer's Life/SpringFramework

AOP(Aspect Orientied Programming)

Oliver's World 2008. 11. 1. 15:46
728x90

AOP 용어

 1. Advice - aspect 의 실제 구현체, 실제 구현한 코드를 포함

 2. Aspect - 구현하고자 하는 횡단 관심사의 기능. 즉, 애플리케이션의 모듈화하고자 하는 부분을 에스펙트 또는 영역이라고 한다.

 3. joinpoint - aspect 를 플러그인할 수 있는 애플리케이션의 실행지점

 4. pointcut - Advice 가 어느 jointpoint 에 적용될지 정의

 5. introduction - 도입(introduction) 은 기존의 클래스에 새로운 메소드나 속성을 추가한다.

 6. target - Advice 를 받을 대상

 7. Proxy - 대상 객체에 Advice 가 적용된후 생성된 객체

 8. Weving(엮기) - Aspect 를 대상 객체에 적용하여 새로운 프록시 객체를 생성하는 과정

     Weving 가능 지점

         - 컴파일시 : 대상 클래스의 컴파일시 에스펙트엮기 가능

         - 클래스 로딩시 : JVM 에 로딩될때 가능

         - 런타임시 : 애플리케이션 실행중 어떤 시점에서 엮기가능


Spring AOP 구현

 1. Spring의 Advice 는 자바로 작성

 2. Spring의 객체에 대한 Advice 는 런타임시 이루어진다.

 3. Spring은 AOP연맹의 인터페이스를 구현한다.

 4. Spring은 메소드 결합점만 제공한다.

    - Spring은 메소드 결합점만 지원함으로써 객체 필드의 갱신을 가로챌 수 있는 등의 자세한 충고 생성은 불가능하다.


( Spring API 를 이용한 AOP구현

  POJO 클래스를 이용한 AOP구현

  AspectJ 5 에서 정의한 @Aspect 어노테이션 기반의 AOP구현

728x90