我查看了几个月前编写的一些代码,偶然发现一些服务类正在执行以下操作:
Person实体)。PersonDto传输对象列表。现在,对于步骤2,使用自定义的Spring转换器来执行从类型A (Person)到类型B (PersonDto)的转换。
现在我的问题如下。同样的精确操作可以使用类似的java.util.函数来执行,而不是使用Spring转换器。那么,使用这种方法而不是使用这种方法有什么好处呢?
我查看了文档,除了提到任何Spring转换器实现都是线程安全的事实之外,我没有看到任何其他明显的区别。
我倾向于大量使用Spring转换器,因为我能够在不同的地方注入它们并重用它们,但是我认为,同样的方法可以通过包含自动执行的lambda函数的服务类来完成。
因此,如上所述,使用Spring转换器与普通函数相比有哪些可能的优缺点。
发布于 2018-08-01 12:24:08
不可能有任何依赖于您的用例。转换器部分是在Spring 3中实现的,支持Java 5(和6),因此Function不存在。
但重要的是,转换器功能是Spring的一部分。虽然您可以轻松地调用您的函数,但是Spring对它一无所知。但是Spring确实理解它自己的转换器,所以您可以编写转换器,以便整个Spring框架能够理解如何将A转换为B,其中A是Spring所不理解的东西,而B是它所做的事情。这在某些特殊情况下可能是必需的,即使已经为您编写了最常见的用例。
因此Spring的转换器功能并不主要是转换数据,而是扩展Spring框架本身的功能。使用它自己手动转换数据是一种副作用,而不是真正的用例。
发布于 2018-08-01 12:12:22
当您将Converter<S,T>注册到Spring容器时,Spring能够自动为您转换值。
https://stackoverflow.com/questions/51632818
复制相似问题