(塞尔玛的原创作者所以观点稍有不同)
Selma和MapStruct所做的工作有所不同。 首先,似乎Selma生成的代码比MapStruct快一点([http://javaetmoi.com/wp-content/uploads/2015/09/2015-09-mapping-objet-objet2.png)。] 0.13 版本号并不能真正反映代码的成熟度Selma稳定可靠,已投入生产2年。
Selma背后的主要思想是禁止魔术转换,只是自动化所有映射而没有任何副作用。 当映射看起来过于复杂时,开发人员应自己使用自定义映射或拦截器来处理它。
Selma的占用空间尽可能小,我们仅依赖JavaWriter和JDK。
Selma尝试仅使用静态编译生成的代码,而不会在运行时进行任何反射或在字符串字段中编写伪代码。
您可以使用composition来构建一个映射器链,并且在单个映射器中可以拥有可以按每种方法覆盖的全局配置。
构建编译器消息是为了向开发人员提供早期反馈,解决问题和学习API的提示。
最后,可以肯定的是MapStruct具有更多功能,但是Selma为开发人员提供了复杂映射所需的所有工具,并负责编写业务逻辑。 从用户的角度来看,您还可以找到2个API中比另一个更好的API,因此最好的办法是同时尝试这两种API,然后选择一个您更喜欢的API。 不会浪费时间。