http://dev.anyframejava.org/anyframe/doc/core/3.2.0/corefw/guide/aop-components.html
Compiletime Weaving | 별도 컴파일러를 통해 Core Concerns 모듈의 사이 사이에 Aspect 형태로 만들어진 Crosscutting Concerns 코드들이 삽입되어 Aspect가 적용된 최종 바이너리가 만들어지는 방식이다. (ex. AspectJ, ...) |
Loadingtime Weaving | 별도의 Agent를 이용하여 JVM이 클래스를 로딩할 때 해당 클래스의 바이너리 정보를 변경한다. 즉, Agent가 Crosscutting Concerns 코드가 삽입된 바이너리 코드를 제공함으로써 AOP를 지원하게 된다. (ex. AspectWerkz, ...) |
Runtime Weaving | 소스 코드나 바이너리 파일의 변경없이 Proxy를 이용하여 AOP를 지원하는 방식이다. Proxy를 통해 Core Concerns를 구현한 객체에 접근하게 되는데, Proxy는 Core Concerns 실행 전후에 Cross Concerns를 실행한다. 따라서 Proxy 기반의 Runtime Weaving의 경우 메소드 호출시에만 AOP를 적용할 수 있다는 제한점이 있다. (ex. Spring AOP, ...) |
'IT > 스프링' 카테고리의 다른 글
Spring 3.0 MVC 정리 (0) | 2012.01.10 |
---|---|
AspectJ in Spring? (0) | 2012.01.09 |
Pointcut 표현식... execution , within (0) | 2012.01.06 |
JointPoint ..? (0) | 2012.01.06 |
Advice..? (0) | 2012.01.06 |