这些年来 XML 配置日渐式微,取而代之的一般是注解技术。注解相对于 XML 配置最重要的优点是它依附于程序语言的语法结构,在强类型语言中还可以利用已经存在的类型信息,从而极大降低了需要表达的信息量。
如果使用 XML 配置,大量的工作其实是在搭建基本的对象结构,这不仅导致重复工作,同时还带来了 XML 配置结构和对象结构之间的同步问题。特别是当代码重构的时候,注解可以利用 IDE 已有的重构能力,而 XML 配置则往往游离于重构工具之外。
有趣的是,在重度模型驱动的低代码场景下,情况又有了新的变化。在手工编写代码的情况下,代码是最可靠的信息源,一切其他信息都是从代码信息衍生得到。而在模型驱动的场景下,模型是 Unique Source of Truth,
代码也只是根据模型衍生得到的一种信息表达形式。当需要重构的时候,我们只需要修改模型,自动就可以实现代码以及相关配置的修改。在这种情况下,就不存在 XML 重复表达信息,以及 XML 与代码之间信息需要同步的问题了。
XML 相比于注解并不是一无是处,它有着自己独特的优势,在模型驱动的场景下这种优势得到放大,因此在 Nop 平台中我们的做法是以 XML 配置为基础,以注解为次要的补充形式。在后面我还会详细解释其中的原因。