Service.java
ServiceImpl.java
LoggingAdvice.java
TimeCheckAdvice.java
AopTest01.java
aop01.xml
결과
AroundAdvice를 구현한 메소드는 org.aspectj.lang.ProceedingJoinPoint를 반드시 첫 번째 파라미터로 지정해야함(두번째로 지정해도 않됨.. 무조건 첫번째로 지정해야함). 그렇지 않으면 스프링은 예외를 발생시킨다.
AroundAdvice를 구현한 메소드는 ProceedingJoinPoint의 proceed() 메소드를 호출함으로써 프록시 대상 객체의 실제 메서드를 호출하게 된다. 만약 proceed() 메서드를 호출하지 않으면 대상 객체의 메서드(비지니스 로직)를 실행하지 않게 된다.
proceed()를 호출하지 않았을 경우
TimeCheckAdvice.java
결과
proceed()를 호출하지 않았을 경우의 결과를 보면 해당 객체의 비지니스 로직 부분이 실행되지 않은 것을 알 수 있다.
따라서 aop:around로 advice를 적용할 경우는 반드시 proceed()를 호출해 줘야 한다.
'프로그램 > Spring 2.5' 카테고리의 다른 글
[11일차] 데이터베이스 연동 - [JdbcDaoSupport] (2) | 2010.06.21 |
---|---|
[10일차] POJO 클래스를 이용한 AOP-03 (Aspectj의 Pointcut 표현식) (0) | 2010.02.22 |
[8일차] POJO 클래스를 이용한 AOP-01 (10) | 2010.01.27 |
[7일차] AOP : Aspect Oriented Programming - 관점 지향 프로그래밍 (0) | 2010.01.27 |
[6일차] 빈의 라이프 사이클 (InitializingBean/DisposableBean 인터페이스) (0) | 2010.01.18 |