Placer impl référentiel dans la base non-package
-
22-10-2019 - |
Question
Je wan't séparer mon habitude la mise en œuvre du référentiel du package de domaine. Et, probablym quelques interfaces communes. Par exemple, je veux avoir une structure comme
com
domain
Foo
FooRepository
common
Bar
persistence
BarImpl
interface FooRepository extends Bar{}
<jpa:repositories base-package="com.domain" /> // smt else?
Comment je config cela?
La solution
Le pick-up automatique de la classe référentiel ne fonctionne que si vous le placez dans le même paquet et utiliser le Postfix par défaut ou définir le suffixe à utiliser manuellement. Donc, dans votre scénario, vous auriez à placer un FooRepositoryImpl
dans le paquet domain
. Vous pouvez personnaliser le suffixe en utilisant l'attribut repository-impl-postfix
. Si vous souhaitez placer la mise en œuvre dans un autre paquet que vous pouvez déclarer la fève de mise en œuvre personnalisée manuellement à l'aide fooRepositoryImpl
comme id haricot. La classe peut alors résider dans un paquet que vous voulez.
Je suppose que Bar
est l'interface contenant les déclarations de méthode personnalisée. En fait, nous vous recommandons de mettre à la fois l'interface de référentiel personnalisé et la mise en œuvre dans le paquet même et le rendre package protégé pour éviter d'être à la disposition des clients individuellement. De cette façon, tous les clients voient en réalité est l'interface référentiel unifié contenant des méthodes d'interrogation et les mises en œuvre manuellement.