Keputusan yang menyimpan proxy yang dibuat untuk antarmuka repositori Spring Data hanya dibuat karena pengaturan konfigurasi Anda. Asumsikan Anda memiliki konfigurasi berikut:
@Configuration
@EnableJpaRepositories("com.acme.foo")
@EnableMongoRepositories("com.acme.foo")
class Config { }
Ini akan meledak di beberapa titik sebagai antarmuka dalam paket com.acme.foo
keduanya terdeteksi oleh infrastruktur MongoDB dan JPA. Untuk mengatasi ini, baik dukungan JavaConfig dan XML memungkinkan Anda untuk menentukan filter sertakan dan kecualikan sehingga Anda dapat menggunakan konvensi penamaan, anotasi tambahan, atau sejenisnya:
@Configuration
@EnableJpaRepositories(basePackages = "com.acme.foo",
includeFilters = @Filter(JpaRepo.class))
@EnableMongoRepositories(base Packages = "com.acme.foo",
includeFilters = @Filter(MongoRepo.class))
class Config { }
Dalam hal ini, dua anotasi @JpaRepo
dan @MongoRepo
(akan dibuat oleh Anda) akan digunakan untuk memicu deteksi secara selektif dengan memberi anotasi pada antarmuka repositori yang relevan dengannya.
Deteksi otomatis yang sebenarnya agak tidak mungkin karena sulit untuk mengetahui toko mana yang Anda targetkan hanya dari deklarasi antarmuka repositori dan pada saat definisi kacang dibuat, kami bahkan tidak tahu tentang infrastruktur lebih lanjut (sebuah EntityManager
atau sejenisnya).