※ AfterThrowing 어노테이션을 사용하면 After Throwing Advice 메서드를 구현할 수 있음
- 대상 객체의 메서드를 실행하는 도중 예외가 발생한 경우에 공통 기능을 실행
■ 대상 객체 및 호출되는 메서드에 대한 정보나 전달되는 파라미터에 대한 정보가 필요한 경우 org.aspectj.lang.JoinPoint를 파라미터로 추가
FaqBoardImpl.java
package sp.aop.service; import org.springframework.stereotype.Component;
@Component("faqBoard") @Override @Override |
NoticeBoardImpl.java
package sp.aop.service; import org.springframework.stereotype.Component;
@Component("noticeBoard") @Override @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") } |
TestAspect.java
package sp.aop.aspect; import org.aspectj.lang.JoinPoint;
@Aspect
@AfterThrowing(pointcut="execution(public* sp.aop.service.*.*(..))", throwing="ex") |
● Advice 구현 메서드 내에서 Advice 대상 메서드가 발생시킨 예외 개체에 접근하려면 throwing속성을 이용해서 예외 객체를 전달 받을 파라미터의 이름을 지정해주면 됨
● 특정 타입의 예외에 대해서만 처리하고 싶다면, Throwable이나 Exception이 아닌 처리하고 싶은 타입을 파라미터로 지정하면 됨
=> public void afterThrowing(FileNotFoundException ex){ ... }
spring302-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" <context:annotation-config/> </beans> |
결과
<<===== START =====>> ...... |
[참고자료] Spring 3.0 프로그래밍-최범균
'프로그램 > Spring 3.0' 카테고리의 다른 글
@Aspect 어노테이션을 이용한 AOP - @Pointcut 어노테이션을 이용한 Pointcut 설정 (0) | 2012.05.11 |
---|---|
@Aspect 어노테이션을 이용한 AOP - @After, @Around (0) | 2012.05.09 |
@Aspect 어노테이션을 이용한 AOP - @Before, @AfterReturning (0) | 2012.05.09 |
@Aspect 어노테이션을 이용한 AOP (0) | 2012.05.09 |
Advice 타입 별 클래스 작성 - 여러 Advice에 동일한 Pointcut 참조 (0) | 2012.05.05 |