我正在查看几个月前编写的一些代码,偶然发现了一些执行以下操作的服务类:查询数据库并获取实体列表(为方便起见,我们将它们视为Person实体)。流式PersonDto传输查询列表并将检索到的数据转换为传输对象列表。现在,对于第 2 步,使用自定义 Spring 转换器执行从类型 A ( Person) 到类型 B ( PersonDto) 的转换。现在我的问题如下。可以使用类似的java.util.函数而不是 Spring 转换器来执行相同的精确操作。那么使用它代替方法有什么好处呢?我正在查看文档,除了提到任何 Spring 转换器实现都是线程安全的这一事实之外,我没有看到任何其他明显的差异。我倾向于经常使用 Spring 转换器,因为我能够将它们注入到不同的地方并重新使用它们,但我认为使用包含自执行 lambda 函数的服务类也可以做到这一点。因此,如上所述,使用 Spring 转换器与普通函数的可能优点/缺点是什么。
2 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
根据您的用例,可能没有。转换器部分是在 Spring 3 中实现的,支持 Java 5(和 6),所以Function
不存在。
但重要的是,转换器功能是 Spring 的一部分。虽然您可以轻松调用您的函数,但 Spring 对此一无所知。Spring 确实了解它自己的转换器,因此您可以编写转换器,使整个 Spring 框架能够了解如何转换A
为B
,A
Spring 不理解的内容以及B
它所做的内容。在某些特殊情况下可能需要这样做,即使最常见的用例已经为您编写好了。
所以 Spring 的 Converter 功能主要不是关于转换数据,而是关于扩展 Spring 框架本身的功能。使用它自己手动转换数据与其说是实际用例,不如说是一种副作用。
添加回答
举报
0/150
提交
取消