스프링에서 메세지 처리에 대해 정리합니다.
작업할 순서는 다음과 같습니다.
① application-context.xml 수정
② properties 파일 생성
③ Message 클래스 생성
1. 스프링에서는 메세지처리를 위한 인터페이스를 정의하고 있습니다.
우선 메세지처리를 위한 인터페이스인 MessageSource 를 구현해야 합니다. 물론 이 인터페이스를 구현하고 있는 클래스도 스프링에서 제공합니다.
스프링 설정파일 수정 ex)application-context.xml
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>properties/common</value>
<value>properties/error</value>
</list>
</property>
</bean>
ResourceBundleMessageSource 클래스를 정의하고 프로퍼티 파일을 정의합니다. 파일이 여러개일 경우도 문제 없이 정의할 수 있습니다.
ResourceBundelMessageSource 클래스만 가지고도 메세지 처리가 가능하지만 헬퍼클래스를 하나더 정의하겠습니다. 이것도 역시 스프링에서 제공하는 있는 클래스입니다.
헬퍼 클래스 MessageSourceAccessor 의 설명입니다.
*Helper class for easy access to messages from a MessageSource,
* providing various overloaded getMessage method.
스프링 설정파일 수정 ex)application-context.xml
<bean id="messageSourceAccessor"
class="org.springframework.context.support.MessageSourceAccessor">
<constructor-arg>
<ref local="messageSource"/>
</constructor-arg>
</bean>
다음은 MessageSourceAccessor 를 매개변수로 가지는 클래스를 만듭니다. 여기서 만든 클래스를 사용하여 실질적인 메세지 처리를 하게 됩니다.
스프링 설정파일 수정 ex)application-context.xml
<bean id="message" class="com.ntsys.mobile.frm.message.MessageResolver">
<property name="messageSourceAccessor" ref="messageSourceAccessor" />
</bean>
MessageResolver.java
import java.util.Locale;
import org.springframework.context.support.MessageSourceAccessor;
public class MessageResolver {
private static MessageSourceAccessor msAcc = null;
//private static Locale locale = Locale.getDefault();
private static Locale locale = Locale.KOREAN;
public void setMessageSourceAccessor(MessageSourceAccessor msAcc){
MessageResolver.msAcc = msAcc;
}
public static String getMessage(String key){
return msAcc.getMessage(key, locale);
}
public static String getMessage(String key, Object[] objs){
return msAcc.getMessage(key, objs, locale);
}
}
이제 properties 파일을 생성합니다.
common.properties
test.test.test = TEST
이제 메소드를 실행하여 값을 확인합니다.
1) getMessage를 static Method로 등록하여 클래스명으로 호출하는 방법
MessageResolver.getMessage("test.test.test");
2) MessageResolver를 bean으로 등록하여 사용하는 방법
@Resource(name="messageResolver")
MessageResolver messageResolver;
메소드내부에서) messageResolver.getMessage("test.test.test");
'Programing > Java & Spring' 카테고리의 다른 글
스프링(Spring) 에서 RequestURI, RequestURL 차이 (0) | 2023.09.08 |
---|---|
Java Default Method (디펄트 메소드) (0) | 2023.09.08 |
스프링(Spring)에서 RestTemplate, Https 통신 (0) | 2023.09.08 |
AOP(Aspect-Oriented Programming) 개념 및 예시 (0) | 2023.09.08 |
[JAVA] content-disposition (0) | 2013.12.31 |
[SPRING3.0] 페이스북 공유하기① (0) | 2013.09.11 |
[SPRING3.0] 데이터 엑세스 기술② (0) | 2013.09.04 |
[SPRING3.0] 트랜잭션 설정 (0) | 2013.09.04 |
[SPRING3.0] 데이터 엑세스 기술① (0) | 2013.09.03 |
[JAVA] 파라미터 로그 찍기 (0) | 2013.06.26 |