Sistemazione impl repository in non base-pacchetto
-
22-10-2019 - |
Domanda
I tuffarvi nelle separare mia abitudine implementazione repository da pacchetti dominio. E, probablym alcune interfacce comuni. Per esempio io voglio avere una struttura come
com
domain
Foo
FooRepository
common
Bar
persistence
BarImpl
interface FooRepository extends Bar{}
<jpa:repositories base-package="com.domain" /> // smt else?
Come devo config questo?
Soluzione
Il pick-up automatico della classe repository funziona solo se lo si inserisce nello stesso pacchetto e l'uso o il suffisso predefinito o definire il suffisso da utilizzare manualmente. Quindi nel tuo scenario che si avrebbe dovuto mettere un FooRepositoryImpl
nel pacchetto domain
. È possibile personalizzare il suffisso utilizzando l'attributo repository-impl-postfix
. Se si desidera inserire l'applicazione in un altro pacchetto è possibile dichiarare il fagiolo implementazione personalizzata manualmente utilizzando fooRepositoryImpl
come id di fagioli. La classe può quindi risiedere in qualsiasi pacchetto che si desidera.
Presumo che Bar
è l'interfaccia che contiene le dichiarazioni di metodo personalizzato. In realtà si consiglia di mettere sia l'interfaccia repository personalizzati e l'attuazione nella stessa confezione e renderlo pacchetto protetto per evitare che sia a disposizione dei clienti singolarmente. In questo modo, tutti i clienti effettivamente vedere è l'interfaccia repository unificato contenente metodi di query e quelle implementate manualmente.