2014-06-06 2 views
0

Bonjour, 스프링 프레임 워크 버전 3.1.2을 기반으로 작성된 webapp에서 작업하고 있습니다. 이 응용 프로그램은 많은 예외 (예 : 네트워크 문제, 필드 크기 등)를 발생시킵니다. 던져 모든 예외스프링 웹 애플리케이션이 예외를 throw 할 때 알림 메일을 보내십시오.

는 알림 메일을 보내야 시스템이, 내가 약 SimpleMappingExceptionResolver 들었어요하지만 분명히 그것은 봄의 버전 2.x 만 것입니다 :

I가 일을해야 발전이있다 (http://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/ 참조) URL이 위의 사이트에 표시된 솔루션의 경우 개발자가 Spring 3.X 용 @ExceptionHandler을 언급했지만 시스템에 수 백 가지의 메소드가 있습니다. (있는 경우) 글로벌 솔루션을 선호합니다. 모든 메소드 선언시 ExceptionHandler 주석을 언급 할 필요가 없습니다.

누구든지 이것을 구현하는 방법에 대한 아이디어가 있습니까?

+1

당신이 로깅 프레임 워크를 가정하면 ([log4j에 (http://logging.apache.org 그것은 @AfterThrowing에게 주석을 사용하여 선언 /log4j/1.2/apidocs/org/apache/log4j/net/SMTPAppender.html) 또는 [logback] (http://amitstechblog.wordpress.com/2011/11/02/email-alerts-with-logback/)) 이것은 아주 쉽게 거기에서 구성 될 수 있습니다. 응용 프로그램에서 아무 것도 할 필요가 없습니다. 또한 논리를 응용 프로그램에 넣는 것이 잘못된 방법이라고 생각합니다. 모니터링 및 신호는 응용 프로그램의 일부가 아니어야하며 응용 프로그램의 로깅 또는 메트릭을 기반으로 별도의 부분이어야합니다. –

+0

Spring 3 환경에서'SimpleMappingExceptionResolver'를 사용하지 못하게하는 것은 아무것도 없습니다. 주석은 옵션이지만 사용할 수 있다는 의미는 아닙니다. –

답변

0

이 도움이 될 수 : 하여 일치하는 메소드 실행 종료가 예외를 throw 할 때 조언을 던지는 실행

후.

에서
import org.aspectj.lang.annotation.Aspect; 
import org.aspectj.lang.annotation.AfterThrowing; 

@Aspect 
public class AfterThrowingExample { 

    @AfterThrowing("com.xyz.myapp.SystemArchitecture.dataAccessOperation()") 
    public void doRecoveryActions() { 
    // ... 
    } 

} 

더 :

http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/aop.html

+0

도움을 주셔서 감사합니다. – Haroun

관련 문제