2011-05-04 2 views

답변

2

단일 스택 오버런 질문의 범위를 벗어나는 매우 고급 주제입니다. 기본적으로

:

  • 가장 간단한 경우는 스프링 AOP, 는 당신이 전혀 AspectJ를를 사용하지만 AspectJ를 주석에서 자바 프록시를 생성하지 않는 경우. 이것은 또한 최소 강력한 옵션입니다. 단지 몇 개의 포인트 컷 이 지원되며 목표는 이어야합니다.
  • 가장 강력한 옵션을 사용하면 일반적으로 빌드 시스템에 통합 AspectJ를 컴파일이 (개미 또는 받는다는와 함께 잘 작동) 정적이다. 귀하의 클래스 파일은 사실 을 포함하도록 변경되었습니다. 이 은 컴파일 타임 짜기라고합니다.
  • 로딩 시간 직조는 어딘가에 입니다. 코드를 조언하고 싶지만 클래스 파일을 변경하지 않으려면 " 클래스 로더에게 알리기"(적절한 정의는 아니지만 아이디어를 제공). 로딩 타임 - 직물은 또한 코드를 타사 라이브러리 코드에 추가하려는 경우에만 일반적으로 선택할 수 있습니다.

모든 미세한 차이점을 이해하려면 Ramnivas Laddad가 AspectJ in Action이어야합니다.

STS에서 사용하는 설정은 빌드 시스템에있는 설정을 반영해야합니다. Spring Reference의 7. Aspect Oriented Programming with Spring 섹션도 매우 유용합니다.

+0

감사합니다. Sean ... 이상한 ExceptionInInitializerError에 직면하고 있습니다. AspectJ에서 권고하는 bean에 대한 NullPointerException .. 문맥이 intialize하려고 시도 할 때 초기화되지 않았습니다. u 쿼리 ... i를 처리 할 수있게되었습니다. 다른 링크에서이 문제를 추가했습니다. [링크] (http://stackoverflow.com/questions/5880552/using-ajc-compiler-with-spring-problem-aspectj) – Vish

+0

@Vish 예, [알고 있습니다] (http : /stackoverflow.com/q/5880552/342852). 거기에 aspect 코드를 게시하면 도와 드리겠습니다. –

+0

스프링 구성과 함께 aspect 코드를 추가했습니다. 좋은 요약에 대해 – Vish

관련 문제