8

現在、Spring と JPA で動作するエンタープライズ アプリケーションがあります。今日、私たちは次世代サーバーを計画しています。

プロジェクトで spring-data を使用するかどうかについて議論していますか? 生産性と開発時間が向上するようです。

考慮すべきスプリングデータの代替手段はありますか? spring と JPA を単独で使用しないのはなぜですか? 何を指示してるんですか?

ゼロから開発を開始しているため、以下以外の制約はありません。

  1. 私たちはmysqlとmongoDBを使用しています
  2. Javaでコーディングします
  3. GWT でクライアント側のコードを開発します。

現在、階層化されたアーキテクチャがあります。サービス層とマネージャー層があり、永続化とビジネス ロジックを処理します。それを構築した人は誰でも、3 番目の DAO 層を挿入する正当な理由がわかりませんでした。

4

1 に答える 1

3

Spring + JPA に対する Spring Data の技術的な利点がいくつかあります。純粋な SQL 環境では、Spring Data に利点があると思います。

  • Spring Data はすべての実装で同じ CrudRepository インターフェースを使用するため、JPA から MongoDB に切り替える手間が少なくなります。
  • Spring Data を使用すると、同じメソッドを何度も書く必要がなくなります。メソッドをインターフェイスに追加するだけで、生成されます (例: UserRepository.findByUsername())。
  • JPA、MongoDB などの REST 実装にボイラープレートを保存できます ( http://projects.spring.io/spring-data-rest/を参照) 。
  • 他の永続化サービスまたはインデックス作成サービスを試してみたい場合は、Neo4j、Hadoop、Solr、ElasticSearch、fuzzydb などの成熟したテクノロジーと新しいテクノロジーの両方に Spring Data 実装があります。

MySQL と MongoDB を使用していることを考えると、開発者は 2 つ (JPA と MongoDB Java クライアント) ではなく単一のデータ アクセス API (Spring Data) にコーディングできるため、Spring Data が有力な候補になると思います。

既存のアーキテクチャに関しては、マネージャー層がリッチ ドメイン パターンまたはアクティブ レコードのいずれかを実装しているように聞こえます。

Spring Data は、Spring の @Configurable を使用したサービスの注入と組み合わせると、Rich Domain に非常に適していると私は考えています。

最後に、SQL の代わりに MongoDB などを使用する Spring Security や Spring Social などのサービスを実装する必要がある場合にも、Spring Data は大きな利点をもたらします。

ここにある fuzzydb サンプル webapp でこれを行いました。(免責事項: 私は現在 fuzzydb の唯一の最近のコミッターであり、何年もそれに触れていませんが、そのコードに基づいてライブ サービス www.fridgemountain.com を持っていましたが、それを宣伝することを怠っていました。 )

于 2013-10-11T09:28:41.880 に答える