Java 如何使用SpringMVC和SpringJDBC模板RowCallbackHandler和流结果?

Java 如何使用SpringMVC和SpringJDBC模板RowCallbackHandler和流结果?,java,spring,rest,spring-mvc,callback,Java,Spring,Rest,Spring Mvc,Callback,我目前有一个默认的Spring架构:repository、Service、Controller Spring WebMVC、JacksonJson映射器as view。我的所有存储库/服务/控制器方法如下所示: public Collection<Pet> findPetsWithName(String name) {} 因此,基本上每一层都检索数据,进行一些计算并将其返回到下一层 随着数据大小的增加,我正在使用SpringJDBCTemplate、fetchsize设置和RowC

我目前有一个默认的Spring架构:repository、Service、Controller Spring WebMVC、JacksonJson映射器as view。我的所有存储库/服务/控制器方法如下所示:

public Collection<Pet> findPetsWithName(String name) {}
因此,基本上每一层都检索数据,进行一些计算并将其返回到下一层

随着数据大小的增加,我正在使用SpringJDBCTemplate、fetchsize设置和RowCallbackHandler来流式传输数据库结果,而不是一次获取所有结果

我现在的问题是:我是否可以将回调方法应用于所有层,而不仅仅是存储库层,以便将所有结果都存储到回调函数中,而不是将它们作为集合返回?它是否适用于SpringMVC视图?我想我最终会得到一个链接回调:

RowCallbackHandlerServiceCallbackHandlerControllerCallbackHandlerSpringViewHandlerHttpSerlvetResponse

public void findPetsWithName(String name, Callback<Pet> callback) {}

有没有人使用过这种方法?是否有它的现有模式或模板?我认为大数据量只有一个好处,因为它更难设计。

我将数据从行映射器流式传输到响应的唯一时间是当我们在数据库中存储大的加密二进制数据时,希望按原样流式传输数据,由我们的think客户端解密

假设这是您正在考虑的情况,您应该使用ResultTextRactor。 假设您的数据类型是blob等效的,您可以从回调中的结果集获取流,并将其传递到响应输出流,响应输出流作为repo方法的参数被接受

如果您希望实现一种设计,其中每一行都应映射到一个对象,并且回调机制应将该对象逐个传递回更高的层,请告诉我