1

私は現在、デフォルトの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) {}

このアプローチを経験した人はいますか?そのための既存のパターンまたはテンプレートはありますか? データサイズが大きいほど設計が難しくなるため、メリットしかないと思います。

4

1 に答える 1