3. AspectJ 사용하는 초간단 AOP 예제
앞에서 보았던 이클립스 플러긴을 잘~ 설치하신 뒤에(이클립스 메뉴를 사용한 설치 추천) 이클립스를 실행합니다.
소스 코드는 기본적으로 AJDT에서 제공해주는 데모 동영상을 참조했습니다.
먼저 이클립스에서 자바 프로젝트를 생성하고 다음과 같이 기본적인 클래스를 작성합니다.
public class Keesun {
public static void main(String[] args) {
new Keesun().say();
}
private void say() {
System.out.println("keesun");
}
}
현재 프로젝트 상태를 보면 다음과 같습니다.
bl136.bmp프로젝트를 우클릭하고 나오는 메뉴에서 맨 끝에서 하나위를 보면 AspectJ Tools가 있습니다. 여기서 Convert To AsperctJ Project를 클릭합니다. 그럼 프로젝트가 다음과 같이 바뀝니다.
bl137.bmp만약에 위처럼 바뀌지 않았다면 플러긴이 제대로 설치가 되지 않은 것입니다. 그럴땐 다시 설치를 하면 되겠죠 ^^; 저는 처음에 zip파일을 풀어서 설치 했다가 제대로 되지 않아서 엄청 시간을 소비 했답니다. 설치하는데 시간이 조금 걸리더라도 업데이트 사이트를 이용한 설치를 권장합니다.
이제는 Aspect를 만듭니다. 플러긴이 설치 됐다면 클래스를 만들던 아이콘 오른쪽 화살표를 누르면 A가 추가 된 것을 볼 수 있습니다. 그걸 이용해서 Aspect를 만들고 다음과 같이 코딩합니다.
public aspect Manner {
pointcut callsay(): call (* Keesun.say (..));
before(): callsay () {
System.out.println("Welecome");
}
after(): callsay () {
System.out.println("Good bye");
}
}
이제 이전에 작성했던 Keesun 클래스를 실행합니다. 실행 할 때는 Shift + Alt + x , C 를 이용합니다. C가 Aspect Java Application 실행 단축키 입니다. 그런데 J 로 해도 되긴 되네요. :)
결과가 다음과 같이 나오면 정상입니다.
keesun
Good bye
만약에 위와 같이 되지 않고.
Exception in thread "main" java.lang.NoClassDefFoundError: org/aspectj/lang/NoAspectBoundException
이런 메시지를 보게 되신 분들은 class path에 aspectjrt.jar 파일을 추가해주면 제대로 실행이 됩니다. 추가하는 방법은 Run 아이콘(녹색 동그라미에 화살표 그려져있는 아이콘)을 클릭하시고 다음 그림처럼 aspectjrt.jar를 추가해 주시면 됩니다.
bl138.bmp