深色模式
配置消息解析器
如果想给模板引擎(Template Engine)添加一个(或多个)消息解析器该怎么做?其实很简单:
java
// 仅设置一个消息解析器(会覆盖原有解析器)
templateEngine.setMessageResolver(messageResolver);
// 添加多个消息解析器(追加,不覆盖)
templateEngine.addMessageResolver(messageResolver);那为什么需要配置多个消息解析器呢?原因和配置多个模板解析器是一样的:消息解析器是按顺序生效的——如果第一个解析器无法解析某个指定的消息,就会依次尝试第二个、第三个,以此类推。
补充说明
setMessageResolver:是“覆盖式”设置,调用后模板引擎只会保留你传入的这一个消息解析器,原有解析器会被替换;addMessageResolver:是“追加式”添加,新的解析器会被加入到解析器列表末尾,和原有解析器共同生效;- 解析优先级:多个解析器按“添加顺序”依次尝试解析消息,只要有一个解析器能找到对应的消息,就会停止后续解析流程并返回该消息。
总结
- 给模板引擎配置消息解析器有两种方式:
setMessageResolver(单解析器,覆盖)和addMessageResolver(多解析器,追加); - 多消息解析器按添加顺序生效,前一个解析失败则自动尝试下一个,可适配多来源消息的解析场景。
