私は現在、デフォルトのSpringアーキテクチャを持っています:リポジトリ、サービス、コントローラー(Spring WebMVC)、JacksonJson Mapperを「ビュー」として。すべてのリポジトリ/サービス/コントローラー メソッドは次のようになります。
public Collection<Pet> findPetsWithName(String name) {}
したがって、基本的に各レイヤーはデータを取得し、いくつかの計算を行い、次のレイヤーに返します。
データ サイズの増加に伴い、Spring JdbcTemplate、fetchsize 設定、および RowCallbackHandler を使用して、データベースの結果を一度にフェッチするのではなく「ストリーミング」しました。
私の質問は次のとおりです。リポジトリレイヤーだけでなく、すべてのレイヤーに「コールバック」アプローチを適用して、すべての結果がコレクションとして返される代わりにコールバック関数になるようにすることはできますか? SpringMVC ビューで動作しますか? 私は連鎖コールバックで終わると思います:
RowCallbackHandler(ServiceCallbackHandler(ControllerCallbackHandler(SpringViewHandler(HttpServetResponse))))
public void findPetsWithName(String name, Callback<Pet> callback) {}
このアプローチを経験した人はいますか?そのための既存のパターンまたはテンプレートはありますか? データサイズが大きいほど設計が難しくなるため、メリットしかないと思います。