package com.appleframework.context.message; import org.apache.log4j.Logger; import org.springframework.context.NoSuchMessageException; import org.springframework.context.support.MessageSourceAccessor; import org.springframework.util.Assert; import com.appleframework.context.utils.MessageSourceUtility; import com.appleframework.exception.AppleException; import java.util.Locale; /** * <pre> * 功能说明: * </pre> * * @author 徐少敏 * @version 1.0 */ public class MessageManager { protected static Logger logger = Logger.getLogger(MessageManager.class.getName()); private static MessageSourceAccessor messageSourceAccessor = MessageSourceUtility.getMessageSourceAccessor(); public static String getExceptionMessage(AppleException appleException) { Locale locale = Locale.CHINA; String key = appleException.getKey(); try { Assert.notNull(messageSourceAccessor, "请先设置错误消息的国际化资源"); return messageSourceAccessor.getMessage(key, appleException.getParams(), locale); } catch (NoSuchMessageException e) { logger.error("不存在对应的错误键:{" + key + "},请检查是否在i18n/service/error的错误资源"); throw e; } } public static String getMessage(String code, Locale locale, Object[] params) { try { Assert.notNull(MessageSourceUtility.getMessageSourceAccessor(), "请先设置错误消息的国际化资源"); return MessageSourceUtility.getMessageSourceAccessor().getMessage(code, params, locale); } catch (NoSuchMessageException e) { logger.error("不存在对应的错误键:{" + code + "},请检查是否在i18n/service/error的错误资源"); throw e; } } public static String getMessage(String code, Object[] params) { Locale locale = Locale.CHINA; try { Assert.notNull(MessageSourceUtility.getMessageSourceAccessor(), "请先设置错误消息的国际化资源"); return MessageSourceUtility.getMessageSourceAccessor().getMessage(code, params, locale); } catch (NoSuchMessageException e) { logger.error("不存在对应的错误键:{" + code + "},请检查是否在i18n/service/error的错误资源"); throw e; } } }