Programing/egovFramework

전자정부프레임워크 나만의 웹 템플릿 프로젝트 생성하기(4-2) - context-common.xml

리커니 2017. 1. 25.
반응형

 

전자정부프레임워크 나만의 웹 템플릿 프로젝트 생성하기(4-2) - context-common.xml 

 

이번 포스팅에서는 web.xml 리스너에서 비지니스 레이어를 구동하면서 참조하는 설정파일 중

두번 째 파일인 context-common.xml 파일에 대해서 알아보겠습니다.

 

xml 마다 반복되는 소스인 namespace 와 스키마에 대한 정의에 대한 설명은 제외 하고 진행하겠습니다.

소스에 대한 기본적인 설명은 아래 Link를 참조하세요.

 

Link : 전자정부프레임워크 나만의 웹 템플릿 프로젝트 생성하기(4-1) - context-aspect.xml 

 

아래서 설명할 코드들은 앞서 설명한 context-aspect.xml 과 비슷 합니다.

이전 포스팅을 이해했다면 소스 이해는 되실꺼라 생각됩니다.

 

 

<context:component-scan> 은 이전 포스팅에서 설명드린 것과 같이 annotation이 설정된 클래스들을 메모리 상에 올리는 작업을 합니다.

하지만 여기서는 exclude-filter 가 설정되어 Controller 타입의 어노테이션은 제외 하고 나머지 어노테이션을 메모리 상에 올리게 됩니다.

 

이유는 비지니스 레이어가 우선적으로 구동되고난 후에 이 비지니스 레이어를 참조하는 프리젠테이션 레이어를 구동 해야 하기 때문입니다.

컨트롤러가 구동되는데 여기서 사용되는 service, DAO가 없다면 에러가 나겠죠..

 

 

setter injection 을 사용하는 bean 등록에 대한 설명은 이전 포스팅에 있으니 참고 하시기 바랍니다.

간단히 messageSource 클래스를 실행하는데 setBasenames 에 하위에 있는 매개변수들을 넘긴다는 말입니다.

(setCacheSeconds 에  60 을 매개변수로 전달)

 

여기서 사용되는 ReloadableResourceBundleMessageSource 클래스는 Message Properties를 사용하기 위한 클래스 입니다. 다국어 처리를 할 때 사용하죠.

현재 만들어진 프로젝트에서 setter injection에 매개변수로 있는 3개의 value중에 아래 두개는 존재하지 않으니 지워도 무방합니다.

 

 

첫번째 매개변수 값의 classpath 경로로 이동하여보면 3개의 파일이 있습니다.

message-common_en.properties

message-common_ko.properties

message-common.properties

 

기본적으로 메세지 파일들은 확장자(.properties) 와 Lcale정보(_en, _ko)는 생략합니다.

 

다국어 처리를 할 때는 LocaleResolver를 정의하여 사용하지만 없다면 기본적으로 AcceptHeaderLocaleResolver를 이용합니다. 여기서도 LocaleResolver에 대한 정의가 없으니 AcceptHeaderLocaleResolver를 사용하는 것이죠.

 

이렇게 등록함으로써 JSP 파일을 따로 만들지 않아도 Spring에서 제공하는 태그 라이브러리를 통해 다국어 처리가 가능하게 됩니다.

 

cf)

<%@ taglib prefix="spring" url="http://www.springframwork.org/tags"%> 등록 후

<spring:message code="message.user.login.mainTtitle"> 이런식으로 사용.

브라우저에서 제공하는 lcale 정보를 활용하여 제공할 언어가 설정된다.

 

다국어 처리에 대한 자세한 사용법은 구글링을 통해서..^^;

 

 

 

다음은 Exception 발생 시 개별 trace를 출력하는 leavaTrace를 설정하는 부분입니다.

소스는 위와 동일하므로 따로 설명하진 않겠습니다.

 

egovframework.rte.fdl.cmmn.trace.LeaveaTrace를 따라 들어가보면 아래와 같은 설명이 있습니다.

 

LeaveaTrace 클래스의 목적은 Exception 을 발생하지 않고 후처리로직만을 실행하고자 만들어졌다.
 * EgovAbstractServiceImpl 를 상속받은 경우 leavaTrace(메세지키) 형태로 실행을 하면 설정에 등록된 후처리 로직을 실행한다.
 * 그리고 나서 원래 로직으로 돌아와 나머지 수행을 한다.

 

설명은 다 되어있는거 같네요.

 

요약하자면 context-common.xml 파일은

다국어 처리와 개별 trace 처리 설정 파일 입니다.

 

다음 포스팅에서는 DB 설정파일은 context-datasource.xml에 대해 알아보도록 하겠습니다.

 

반응형

댓글

💲 추천 글