Whiteship's Note

나이쓰~!!! 계층형 아키텍처 검증 용 Aspect

AOP : 2008.10.05 23:57


@Aspect
public class SystemArchitecture {

    @Pointcut("execution(* org.opensprout.dao..*(..))")
    public void executeDao(){}
    
    @Pointcut("call(* org.opensprout.service..*(..))")
    public void callToService(){}
    
    @Before("cflowbelow(executeDao()) && callToService()")
    public void checkDao(JoinPoint jp){
        System.out.println("daoToService architechure checking");
        throw new RuntimeException("Dao can't call Service's method.");
    }
    
}

뭐하는 녀석이냐면, DAO에서 Service에 있는 메소드 호출을 하지 못하게하는.. 그런 애스팩트입니다. 이걸 응용하면, 개발자 100여명에 제각각 코딩 실력일 경우 컨트롤러에서 DAO를 직접 호출한다던가, 서비스 계층에서 컨트롤러에 있는 메소드를 사용한다던가 하는 어처구니 없는 코드를 찾아낼 수 있습니다.

흐아~ 이 녀석 어떻게 구현할지 생각해내느라, PPT 만들다가 고민하고, 고민하다가 집에 맥주 사들고와서 코딩해보고 테스트까지 완료, call이랑 cflowbelow 포인트컷을 아직 스프링 @AOP에서 지원하지 않기 때문에, AspectJ를 써야 하는데, 클래식 스프링 AOP를 사용하면 구현 가능합니다.

CFlow뭐시기Pointcut 클래스를 사용하면 되고, call대신에 method execution 포인트컷을 사용해도 무관합니다. 그 구현은 자바 5 미만 버전을 사용하시는 분에게 맡기겠습니다. 전 자바 5 미만이 싫어효. ^^;

잠잘 시간 전에 해내서 정말 기쁩니다. 아~ 맘편히 잘 수 있겠다. 휴우~~~

ps: 헤어진 여친 나오는 꿈은 제발 그만, 나 정말 꿈에서 깨기 싫었다. 나타나지 말아줘. 마이 뉴 여친. 원더걸스 나와라~ 원더걸스 나와라~ 원더걸스 나와라~

top

  1. Favicon of http://helols.tistory.com BlogIcon helols 2008.10.06 00:36 PERM. MOD/DEL REPLY

    오호랏.. AOP 실전용인데요..ㅋㅋ
    클래식으로 한번;; 삽질을 해봐야 겠는데요;;ㅋ
    잘되려나..ㅋㅋ
    before에 controlflow흠냥;;; 먼가 어려울것 같기도 하고;;ㅋ
    해보고 안되면 포럼에 올릴께요;;ㅋ 갈챠주세요^^

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

    ㅋㅋㅋ안갈챠줄껀데요. 알아서 하세욧!!

  2. Favicon of http://helols.tistory.com BlogIcon helols 2008.10.06 10:47 PERM. MOD/DEL REPLY

    헉OTL.... ㅠ

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.10.06 11:16 PERM MOD/DEL

    ComposablePointcut 사용하심되요.
    cflow + 평범포인트컷 => CP로 합치면 끝.

  3. Favicon of http://techpara.tistory.com BlogIcon TBL 2008.10.06 16:26 PERM. MOD/DEL REPLY

    이거 흥미로운데요..;?

    이제 슬슬 공부하는 처지인지라...

    좋은 자료네요...

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.10.06 16:38 PERM MOD/DEL

    넹. 감사합니다. :)

  4. Favicon of http://helols.tistory.com BlogIcon helols 2008.10.07 10:02 PERM. MOD/DEL REPLY

    하던일좀 마무리 하고 한번 도전을 ..ㅋㅋ

    Favicon of http://whiteship.tistory.com BlogIcon 기선 2008.10.07 12:01 PERM MOD/DEL

    네, 성공하시면 포스팅해서 트랙백 주세요.

Write a comment.




: 1 : ··· : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : 12 : ··· : 40 :