4

アプリケーションには 3 つのレイヤーがあります。

  • REST インターフェイス (JBOSS RestEasy)
  • サービス層 (Spring サービス)
  • 永続層 (春豆)

永続層では、2 つのクラス (同じインターフェイスを実装する) を実装します。1 つは aMemoryStoreで、もう 1 つはFileSystemStoreです。

これらの実装に注釈を付ける必要があり@Repositoryますか?

2 つのクラスにはデータベースへのアクセス権がありません。後で DatabaseStore に実装される可能性がありますが、現在はそうではありません。

より一般的には、アノテーション@Repositoryはすべての永続 Bean に使用する必要がありますか、それともデータベースにアクセスする人だけに使用する必要がありますか?

4

2 に答える 2

6

クラスjavadocは次のように述べています。

このように [@Respository で] アノテーションが付けられたクラスは、PersistenceExceptionTranslationPostProcessor と組み合わせて使用​​すると、Spring DataAccessException 変換の対象となります。注釈付きクラスは、ツールやアスペクトなどの目的で、アプリケーション アーキテクチャ全体におけるその役割についても明確にされています。

特別な例外変換 (JDBC、Hibernate などから) または独自のテクノロジが必要な場合 (ただし、これを知るには spring を拡張する必要があることを意味します)、クラスに @Repository で注釈を付ける必要があると思います。 @成分。

あなたの特定のケースでは、インターフェイスがデータの永続性のために設計されているため、 @Repository で注釈を付けるのは正しいと思います。

于 2012-09-25T14:31:02.197 に答える
0

これは @Repository アノテーションだけではなく、クラスのステレオタイプに関するものです。リポジトリ クラスの場合、おそらく XxxxxRepository という名前になり、@Repository アノテーションが付けられます。

リポジトリは、次のようにさまざまな実装を持つことができます。

  • Jpaリポジトリ
  • MongoDbリポジトリ

ファイル システム リポジトリを別の実装として追加できます。これはレポパターンに合っているようです。

于 2012-09-25T19:49:58.133 に答える