本文沿一次 `MessageUtils.message()` 调用展开,依次看资源文件的组织方式、`MessageSource` 的来源、`Locale` 的确定过程,以及占位符填充和缺键时的行为。