消息
背景
通常,我们在业务开发过程中存在符合预期情况下的正常消息提示 & 不符合预期情况下的异常消息通知需求,还需要针对消息做国际化。为此,Trantor 提供了一套消息机制,让用户可简单地声明消息并使用,同时将消息作为一种资源,可在国际化进行配置。
在线编辑声明
进入 制品中心->配置->业务域->消息,新增消息:
用户可以在先配置消息,并通过部署到Maven仓库,并依赖到自己的工程里。
Trantor会按照配置生成一个 Java Interface,如下所示:
public interface TradeMsg {
@Message(value = "The goods not found!", type = MessageType.Error) String ERROR_GOODS_NOT_FOUND = "Trade.goodsNotFound";
@Message(value = "The goods [${shopId}] info update success!", type = MessageType.Success) String SUCCESS_GOODS_INFO_UPDATE = "Trade.goodInfoUpdateSuccess";
}使用
Trantor 提供了两类消息:
- 提示消息(
BusinessMessage): 符合预期的提示消息 - 异常消息(
BusinessException): 不符合预期的异常消息
消息的使用有两种用途,一种是直接返回具体提示消息,另一种是作为异常的信息将消息抛出并返回给页面提示。
1、提示消息
@FunctionImpl(name = "更新商品实现")public class UpdateItemFuncImpl implements UpdateItemFunc { @Override public BusinessMessage execute(ItemBO item) { DS.update(item); //当消息需要传递参数时用Map传递,对应键的名称必须要和消息声明{}里声明的一致 HashMap<Object, Object> map = new HashMap<>(); map.put("shopId", "food"); return BusinessMessage.success(TradeMsg.SUCCESS_GOODS_INFO_UPDATE, map); }}2、异常消息
@FunctionImpl(name = "删除商品实现")public final class DeleteItemFuncImpl implements DeleteItemFunc { @Override public void execute(ItemBO item) { try { DS.delete(item); } catch (Exception e) { //不需要传递参数时直接调用 throw new BusinessException(TradeMsg.ERROR_GOODS_NOT_FOUND); } }}国际化
目前 Trantor 交付控制台的国际化模块提供对消息进行手动设置翻译的操作,具体操作流程如下:
-
在 制品中心->配置->国际化页面创建 & 启用,例如创建
zh-CN类型,具体参考下图:

-
点击翻译查看
zh-CN页面内容并选择消息,查看所有的消息并对消息进行翻译

-
对当前语言包启用并重新发布项目,新的语言包才会生效
