<aop:after-throwing>
- After Throwing Advice는 대상 객체의 메서드가 예외를 발생시킨 경우에 적용되는 Advice
FaqBoardImpl.java
package sp.aop.service; import org.springframework.stereotype.Component;
@Component("faqBoard") @Override |
NoticeBoardImpl.java
package sp.aop.service; import org.springframework.stereotype.Component;
@Component("noticeBoard") @Override |
BoardController.java
package sp.aop.controller; import javax.annotation.Resource; import org.springframework.web.servlet.ModelAndView; import sp.aop.service.Board;
public class BoardController extends
@Resource(name="noticeBoard") } |
LogAdvice.java
package sp.aop.advice; import org.aspectj.lang.JoinPoint;
public class LogAdvice { public Object logPrint(ProceedingJoinPoint joinPoint) throws Throwable{ |
●Advice 구현 메서드에서 발생된 예외를 사용하려면 <aop:after-throwing> 태그의 throwing 속성에 명시한 이름을 갖는 파라미터를 추가하면 됨
=> <aop:after-throwing pointcut-ref="logPrint" method="afterThrowing" throwing="exp"/>
throwing="aaa" 라고 했다면 afterThrowing(Throwable aaa){ ... }라고 하면 됨.
spring302-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
<context:annotation-config/> </beans> |
●대상 객체의 메서드가 발생시킨 예외 객체가 필요한 경우 throwing 속성에 예외 객체를 전달받을 파라미터의 이름을 명시하면 됨.
●특정 타입의 예외에 대해서만 처리하고 싶다면, Throwable이나 Exception이 아니라 처리하고 싶은 예외 타입을 파라미터로 지정하면 됨 => afterThrowing(FileNotFoundException ex){ ... }
●대상 객체 및 호출되는 메서드에 대한 정보나 전달되는 파라미터에 대한 정보나 필요 한 경우 다음과 같이 org.aspectj.lang.JoinPoint를 파라미터로 추가 =>
afterThrowing(JoinPoint joinPoint, Exception ex){ .. }
결과
<<===== START =====>> |
[참고자료] Spring 3.0 프로그래밍-최범균
'프로그램 > Spring 3.0' 카테고리의 다른 글
Advice 타입 별 클래스 작성 - 여러 Advice에 동일한 Pointcut 참조 (0) | 2012.05.05 |
---|---|
Advice 타입 별 클래스 작성 <aop:after>, <aop:around> (0) | 2012.05.05 |
Advice 타입 별 클래스 작성 <aop:before>, <aop:after-returning> (0) | 2012.05.03 |
AOP 심플예제 (0) | 2012.05.03 |
AOP - XML 스키마 기반 - Aspect 설정 (0) | 2012.05.01 |