Technical Note/SPRING


Load Time Weaving이란 말 그대로 클래스가 로드되는 시점에 Weaving 작업을 수행하는 것을 의미한다.


전통적으로 AspectJ 에서는 ajc(AspectJ Compiler)라는 컴파일러를 사용해서 사용자가 작성한 Class 파일이나 jar 파일을 컴파일 시간에 Weaving 하는 방식을 지원했다. 비록 이 방법이 아직까지도 가장 보편적이고 또 편리한 방법이긴 하지만, 컴파일시 Weaving 은 역시 불편한 방법이다. 하지만, 성능면에서는 가장 유리한 방법이라는 것은 염두해 두자


  • Compile-time weaving : ajc를 이용하여 소스를 컴파일할 때 Weaving 작업을 진행하는 것을 의미한다.
  • Post-compile weaving : 이미 컴파일된 바이너리 클래스를 Weaving하는 것을 의미한다.
  • Load-time weaving (LTW) : Class Loader가 클래스를 Loading할 때 Weaving 작업을 진행한다. Weaving Agent가 필요하다.
http://www.eclipse.org/aspectj/doc/released/devguide/ltw.html
http://blog.naver.com/ukja/120040782799
http://www.javajigi.net/display/AOP/AspectJ+Load-Time+Weaving