빵구의 개발 메꾸기

전자정부 프레임워크 샘플 코드 분석 (context-aspect.xml) 본문

BACK-END/SPRING

전자정부 프레임워크 샘플 코드 분석 (context-aspect.xml)

bkjo94 2022. 4. 28. 15:57

전자정부 프레임워크 프로젝트 생성 시 샘플 코드를 포함시킨 상태로 생성하는 경우 샘플 코드에 대한 파일이 자동으로 구성된다.

spring 설정 파일 중 context-aspect.xml 파일에 대해 내용이 어떻게 구성되어 있고 역할이 무엇인지 알아보자.

 

 

 

web.xml 파일은 웹 어플리케이션의 설정파일이며 WAS가 실행이 될 때 가장 먼저 읽는다.

context-param 태그의 param-value를 보면 context-로 시작하는 xml 파일들은 전부다 읽어서 적용시킨다.

 

 

 

① context-aspect.xml 파일은 웹 어플리케이션 실행 시 낮은 결합도와 높은 응집도를 위한 AOP를 통해

    코드를 효율적으로 관리하기 위해 활용한다.

aop는 Aspect Oriented Programming의 약자이며 aop:pointcut 태그는 호출 가능한 메소드를 필터링하고

    하단의 aop:aspect 태그의 pointcut-ref 설정으로 pointcut으로 필터링 된 메서드를 언제 호출할지 설정할 수 있다.

    호출하는 시점의 종류는 5가지로 구분되어 있다.

    before :  비즈니스 메서드 호출 전 실행

    after-returning : 비즈니스 메서드 호출 후 리턴 될 때 실행

    after-throwing : 비즈니스 메서드 호출 후 exception 발생 될 때 실행

    after : 비즈니스 메서드 호출 후 결과에 상관 없이 무조건 실행

    around : 비즈니스 메서드 호출 전과 호출 후 실행

    또한 aop:aspect 태그의 ref에 id가 exceptionTransfer인 bean을 참조하고있다.

    Exception 발생 시 설정한 after-throwing에 의해 ExceptionTransfer 클래스의 transfer 메서드가 실행된다.

 

 

① aop:aspect 태그의 ref에서 참조하고 있으며 property태그의 name 속성에 넣어준 exceptionHandlerService을 보면

    list 태그안에 defaultExceptionHandleManager와 otherExceptionHandleManager를 참조해주고 있다.

    ExceptionTransfer 클래스의 setExceptionHandlerService 메서드를 호출하고 list에 있는 bean들을 파라미터로

    넘긴다.

    exceptionHandlerService는 다수의 HandleManager를 list 태그 안에 bean을 참조해서 등록할 수 있다.

② DefaultExceptionHandleManager는 설정을 통해 등록 된 handler 클래스를 실행하는 역할을 한다.

    상황에 따른 일반적인 exception은 다음과 같은 property에 정의한 파라미터를 넘기도록 한다.    

DefaultExceptionHandleManager는 설정을 통해 등록 된 handler 클래스를 실행하는 역할을 한다.

    앞선 상황에 따른 일반적인 exception 이외에 다른 exception에 대해서는 다음과 같은 property에 정의한

    파라미터를 넘기도록 한다.    

④ exception 발생 시 핸들링하는 EgovSampleExcepHndlr 클래스를 id가 egovHandler인 bean으로 등록.

    exception 발생 시 핸들링하는 EgovSampleOthersExcepHndlr 클래스를 id가 otherHandler인 bean으로 등록.

 

Comments