我目前有一个默认的Spring架构:Repostiory,Service,Controller(Spring WebMVC),JacksonJson Mapper作为“视图”。我所有的存储库/服务/控制器方法是这样的:如何使用Spring MVC和Spring JdbcTemplate RowCallbackHandler和流结果?
public Collection<Pet> findPetsWithName(String name) {}
所以基本上每一层中检索数据,做了一些计算,并返回到下一层。
随着数据大小的增加,我正在使用Spring JdbcTemplate,fetchsize设置和RowCallbackHandler来“流”数据库结果,而不是一次全部获取数据。
我现在的问题是:我是否可以申请“回调”的方法来所有层,不仅存储库层,使所有的结果,但到返回它们作为收藏的一个回调函数instread?它是否适用于SpringMVC视图?我想,我想最终的链式回调:
RowCallbackHandler(ServiceCallbackHandler(ControllerCallbackHandler(SpringViewHandler(HttpSerlvetResponse))))
public void findPetsWithName(String name, Callback<Pet> callback) {}
有没有人用这种方法经历?是否有现有的模式或模板?我认为对大数据量来说只有一个好处,因为设计起来比较困难。