본문 바로가기
개발/Spring

[Spring] 전자정부 프레임워크 Exception , LeaveaTrace, AOP

by KIMECK 2020. 7. 3.
반응형

| AOP ( Aspect Oriented Programming )

아래 글 참조

2020/07/03 - [Spring] AOP, Interceptor, Filter

 

[Spring] AOP, Interceptor, Filter

자바 웹 개발을 하다보면, 공통적으로 처리해야 할 업무들이 많다. 예를들어 로그인 관련(세션체크)처리, 권한체크, XSS(Cross site script)방어, pc와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환

kimeck.tistory.com

| Exception 과 LeaveaTrace 

Exception 을 발생한다는 것은 프리젠테이션 계층 말 그대로 사용자 인터페이스까지 Exception 을 던지겠다는 의도이다. 하지만 Exception 을 던지지 않고 Exception 후처리 로직처럼 수행후 계속 비즈니스로 돌아오는 방법도 필요할 것이다.

이것을 위해 leaveaTrace 메소드 가 존재한다. 파라미터로 존재하는 것은 메세지 키이다.

public CategoryVO selectCategory(CategoryVO vo) throws Exception {

		CategoryVO resultVO = categoryDAO.selectCategory(vo);
        
		try {
		  //강제로 발생한 ArithmeticException  
			int i = 1 / 0;
		} catch (ArithmeticException athex) {
                        //Exception 을 발생하지 않고 후처리 로직 실행.
			leaveaTrace("message.trace.msg");
		}
 
		return resultVO;
	}

 

앞에서 언급했던 Exception 후처리 방식과 Exception 이 아니지만 후처리 로직(leavaTrace)을 실행할 하는 방식이다

간략하게 Exception 후처리 방식은

  AOP(pointCut ⇒ after-throw) ⇒ ExceptionTransfer.transfer() ⇒ ExceptionHandlerService ⇒ Handler

순으로 실행된다.

 

LeaveaTrace 는 AOP를 이용하는 구조는 아니고 Exception 을 발생하지도 않는다.

단지 후처리 로직을 실행하도록 하고자 함에 목적이 있다.

실행 순서는 

   LeaveaTrace ⇒ TraceHandlerService ⇒ Handler 순으로 실행한다.

 

즉, LeaveaTrace 는 Exeption 발생시 Exception을 발생하지 않으면서 후처리(Handler) 로직에 들어간다.

     bean 설정만 되어있으면 호출하여 사용 가능

 

* 아래 공식문서 참조

 

출처 :

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:let:configration

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:bsl:exception_handling

https://open.egovframe.org/cop/bbs/selectBoardArticle.do?bbsId=BBSMSTR_000000000013&nttId=15534&pageIndex=277

반응형

댓글