Java MongoTemplate 支持 8 个流

Java 8 stream support in MongoTemplate

为什么我们在 spring-data-mongodb-1.8.2.RELEASE.jar 的 MongoTemplate 中没有 java 8 流支持?

我看到在 MongoRepository 接口中添加了流支持 bean,但我使用纯 MongoTemplate。

简而言之

有流支持,但没有在 MongoOperations 上公开 Stream

说明

Spring 数据 Mongo 通过公开 CloseableIterator<T> stream(final Query query, final Class<T> entityType) 获得流支持。它不在 MongoOperations 上使用 Stream 类型,因为 Spring 数据 Mongo 支持 Java 回到 1.6。您可以使用 StreamUtils.createStreamFromIterator(Iterator<T>) 获取 Stream 对象。 StreamUtils 负责关闭流和释放资源。

HTH,马克

Mark 的回答是正确的(并且应该保留被接受的答案)。也许还有一些关于为什么在 MongoTemplate:

上找不到 Stream 的详细信息

MongoTemplate级别没有Stream的核心原因是Spring数据MongoDB仍然兼容Java6。所以我们不能在 类 我们提供的 的方法签名中使用 Java 8 种类型。对于存储库,这是一个不同的故事,因为这是我们在运行时检查的用户代码,并且 - 如果 Java 8 存在 - 动态适应,例如通过将 CloseableIterator<T> 转换为 Stream.