package kr.wisestone.owl.common; import kr.wisestone.owl.exception.OwlRuntimeException; import kr.wisestone.owl.vo.MessageVo; import kr.wisestone.owl.vo.ResMessageVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.support.MessageSourceAccessor; import org.springframework.stereotype.Component; import org.springframework.web.servlet.LocaleResolver; import java.util.Locale; @Component public class MessageAccessor { @Autowired private MessageSourceAccessor messageSourceAccessor; @Autowired private LocaleResolver localeResolver; public MessageSourceAccessor getMessageSourceAccessor() { return messageSourceAccessor; } public String message(String code, Locale locale) { return this.messageSourceAccessor.getMessage(code, locale); } public String message(String code, Object... args) { return this.messageSourceAccessor.getMessage(code, args, LocaleContextHolder.getLocale()); } public MessageVo getMessage(String code, Object... args) { return new MessageVo(code, this.messageSourceAccessor.getMessage(code, args, LocaleContextHolder.getLocale())); } public ResMessageVo getResMessage(String code, String status, Object... args) { return new ResMessageVo(this.messageSourceAccessor.getMessage(code, args, LocaleContextHolder.getLocale()), code, status); } public Object getResMessage(OwlRuntimeException ex, String status) { return new ResMessageVo(ex.getMessage(), ex.getCode(), status); } }