Whiteship's Note

7. @AspectJ 사용하는 초간단 AOP 예제 2

AOP : 2007.01.13 22:27


@AspectJ 를 사용하는 초간단 AOP 예제에서 Pointcut을 선언하고 Advice들에서 해당 Pointcut을 불러가며 사용했었습니다.

    @Pointcut("execution(public * ex1.Human.sayName(..))")
    public void greeting() {
    }

    @AfterReturning("greeting()")
    public void doBeforeOne() {
        System.out.println("AOP 죽~ 여~ 줍니다~");
    }

이렇게 했었는데요. AspectJ에서는 Anonymous Pointcut이라고 하는데 Spring AOP(중에서도@AspectJ)에서도 사용할 수 있습니다. 다음과 같이 Pointcut 이름을 적을 필요 없이 바로 적용될 부분은 Advice에 명시해 주면 됩니다.

    @AfterReturning("execution(public * Human.sayName(..))")
    public void doBeforeOne() {
        System.out.println("AOP 죽~ 여~ 줍니다~");
    }

두 개의 차이점은 위에 기존에 사용해 봤던 방식은 당연히 재사용이 편하다는 것. 그리고 아래의 것은 재사용하기 불편하다는 차이밖에 없는 것 같습니다. :)

Spring AOP를 JDK 6.0 에서 돌리지 마세요 ㅠ.ㅠ Pointcut이 있는데도 없다고 나옵니다. 이것 때문에 정말 황당해 하며 1시간 가량을...'저번에는 분명히 됐는데;; 왜이러지..' 하면서 괴로워 했습니다.
참조 : http://forum.springframework.org/showthread.php?p=92737

top

  1. Favicon of http://seal.tistory.com BlogIcon 물개선생 2007.01.15 08:21 PERM. MOD/DEL REPLY

    흠.. 그렇군요. JDK6에서 테스트를 해보지 않아서 몰랐습니다. 좋은 정보 감사드립니다. ^^*

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.01.15 09:10 신고 PERM MOD/DEL

    넵~ 헤헷 :)
    좋은 하루 되세요~

  2. hsk741 2007.08.15 17:05 PERM. MOD/DEL REPLY

    Aspectjweaver.jar 버전 1.5.3에서는 작동하는군요

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2007.08.15 23:07 PERM MOD/DEL

    관련 jar들은 Spring-with-depedencies.zip 에 있던 녀석들을 사용해서 버전은 확인을 못했었네요. :)

  3. Favicon of http://eerien.com/blog/ BlogIcon 이린 2008.01.30 13:12 PERM. MOD/DEL REPLY

    Spring AOP(중에서도@AspecJ)

    에 오타가 있네요. ^-^

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.01.30 14:39 신고 PERM MOD/DEL

    감사합니다. (__)/
    수정했습니다.

Write a comment.