リポジトリをベースパッケージではなく配置します
-
22-10-2019 - |
質問
カスタムリポジトリの実装をドメインパッケージから分離しません。そして、おそらくいくつかの一般的なインターフェイス。たとえば、ような構造が必要です
com
domain
Foo
FooRepository
common
Bar
persistence
BarImpl
interface FooRepository extends Bar{}
<jpa:repositories base-package="com.domain" /> // smt else?
これをどのように構成する必要がありますか?
解決
リポジトリクラスの自動ピックアップは、まったく同じパッケージに配置し、デフォルトのポストフィックスを使用するか、接尾辞を定義して手動で使用する場合にのみ機能します。したがって、シナリオでは、配置する必要があります FooRepositoryImpl
に domain
パッケージ。を使用してサフィックスをカスタマイズできます repository-impl-postfix
属性。実装を別のパッケージに配置したい場合は、カスタム実装Beanを手動で使用して宣言できます fooRepositoryImpl
Bean IDとして。クラスは、必要なパッケージに存在することができます。
私はそれを想定しています Bar
カスタムメソッド宣言を含むインターフェイスです。実際、カスタムリポジトリインターフェイスと実装の両方をまったく同じパッケージに入れることをお勧めし、クライアントが個別に利用できるようにパッケージを保護することをお勧めします。これにより、クライアントが実際に表示するすべてのクライアントは、クエリメソッドと手動で実装されたメソッドを含む統合リポジトリインターフェイスです。
所属していません StackOverflow