Java 是否存在具有正确bean映射启动检查的映射库?

Java 是否存在具有正确bean映射启动检查的映射库?,java,mapping,dto,Java,Mapping,Dto,因此,我们正在开发经典的多层应用程序,我们通常需要做的一件事是在域实体、DTO、来自不同层的其他DTO之间进行映射 现在,我们正在手动执行此操作,实际上我对此非常满意。一些同事对此感到困扰,他们希望有一些更自动化的对象映射方法,比如Dozer、Apache BeanUtils等。我不喜欢的是,使用这种方法意味着失去静态检查和重构—如果更改域实体中的属性名,应用程序将被破坏,但编译器不会警告您-您将在运行时严重崩溃。同事们认为,一旦单元测试涵盖了所有内容,这些错误就会被发现。我不太确定这种情况是否

因此,我们正在开发经典的多层应用程序,我们通常需要做的一件事是在域实体、DTO、来自不同层的其他DTO之间进行映射

现在,我们正在手动执行此操作,实际上我对此非常满意。一些同事对此感到困扰,他们希望有一些更自动化的对象映射方法,比如Dozer、Apache BeanUtils等。我不喜欢的是,使用这种方法意味着失去静态检查和重构—如果更改域实体中的属性名,应用程序将被破坏,但编译器不会警告您-您将在运行时严重崩溃。同事们认为,一旦单元测试涵盖了所有内容,这些错误就会被发现。我不太确定这种情况是否会一直持续下去

然而,我想找到一个兼顾两个方面的解决方案——手动方法的安全性和半自动绘图的简单性和简洁性

我设想在应用程序启动期间会检查安全性—此检查代码将查找具有已定义映射的所有实体,并检查所有映射属性是否在另一个类中具有相应的属性

有没有映射库可以做到这一点?我找不到这方面的任何信息。我知道这可能很容易实现,但使用标准的现有解决方案会更好。谢谢

我想说的是,这绝对是您正在寻找的工具

这个映射框架是作为注释处理器构建的,因此它在编译时生成映射代码。您可以定义一个接口来指定映射契约。如果explainfull日志出现问题,Selma将导致编译失败

它是构建为可重构的,因为Selma在编译时生成代码,而且您可以浏览映射源代码


试试看,告诉我。

MapStruct与Selma非常相似-它还使用注释处理器生成映射代码,应该是类型安全的,并且可以进行重构


我现在才开始尝试,但它甚至比我预期的要好(因为检查是在编译过程中进行的,而不是在启动时)。谢谢