我目前有一个默认的 Spring 架构:Repostiory、Service、Controller (Spring WebMVC)、JacksonJson Mapper 作为“视图”。我所有的存储库/服务/控制器方法看起来像:
public Collection<Pet> findPetsWithName(String name) {}
所以基本上每个层都会检索数据,进行一些计算并将其返回到下一层。
随着数据大小的增加,我使用 Spring JdbcTemplate、fetchsize 设置和 RowCallbackHandler 来“流式传输”数据库结果,而不是一次获取所有结果。
我现在的问题是:我可以将“回调”方法应用于所有层,不仅是存储库层,以便所有结果都进入回调函数,将它们作为集合返回?它适用于 SpringMVC 视图吗?我想我最终会得到一个链式回调:
RowCallbackHandler(ServiceCallbackHandler(ControllerCallbackHandler(SpringViewHandler(HttpSerlvetResponse))))
public void findPetsWithName(String name, Callback<Pet> callback) {}
有没有人体验过这种方法?是否有现有的模式或模板?我认为只有大数据量才有好处,因为它更难设计。