स्प्रिंग डेटा रिपॉजिटरी इंटरफ़ेस के लिए बनाए गए प्रॉक्सी को संग्रहीत करने का निर्णय केवल आपके कॉन्फ़िगरेशन सेटअप के कारण किया जाता है। मान लें कि आपके पास निम्न कॉन्फ़िगरेशन है:
@Configuration
@EnableJpaRepositories("com.acme.foo")
@EnableMongoRepositories("com.acme.foo")
class Config { }
यह किसी बिंदु पर पैकेज com.acme.foo
. में इंटरफेस के रूप में उड़ने वाला है दोनों का पता MongoDB और JPA अवसंरचना द्वारा लगाया गया है। इसे हल करने के लिए, JavaConfig और XML समर्थन दोनों आपको फ़िल्टर शामिल और बहिष्कृत परिभाषित करने की अनुमति देते हैं ताकि आप या तो नामकरण परंपराओं, अतिरिक्त एनोटेशन या इस तरह का उपयोग कर सकें:
@Configuration
@EnableJpaRepositories(basePackages = "com.acme.foo",
includeFilters = @Filter(JpaRepo.class))
@EnableMongoRepositories(base Packages = "com.acme.foo",
includeFilters = @Filter(MongoRepo.class))
class Config { }
इस मामले में, दो एनोटेशन @JpaRepo
और @MongoRepo
(आपके द्वारा बनाए जाने के लिए) का उपयोग उनके साथ संबंधित रिपॉजिटरी इंटरफेस को एनोटेट करके चुनिंदा रूप से डिटेक्शन को ट्रिगर करने के लिए किया जाएगा।
एक वास्तविक ऑटो-डिटेक्शन असंभव है क्योंकि यह बताना मुश्किल है कि आप किस स्टोर को पूरी तरह से रिपोजिटरी इंटरफ़ेस घोषणा से लक्षित कर रहे हैं और उस समय जब बीन परिभाषाएं बनाई जाती हैं तो हम किसी और बुनियादी ढांचे के बारे में भी नहीं जानते (ए EntityManager
या इसी तरह) अभी तक।