How can Spring boot/Application.java pick up Mongo AbstractMongoConfiguration in another package? -
मैं अपने वर्ग को संकुल में व्यवस्थित रखना चाहता हूं। निम्न उदाहरण का प्रयोग करना:
मेरे पास "my.main.package" में अनुप्रयोग.जावा है I अपने नीचे AbstractMongoConfiguration के स्वयं के कार्यान्वयन को परिभाषित करता है:
आयात org.springframework.context.annotation.Bean; आयात org.springframework.context.annotation.configuration; आयात संगठन। स्रोत:। आयात com.mongodb.Mongo; आयात करें com.mongodb.MongoClient; @ कॉन्फ़िगरेशन सार्वजनिक वर्ग मायमोंगो कॉन्फिफ एब्सटमॉंगो कॉन्फिगरेशन का विस्तार करता है {@ ओवरराइड @ बेयॉन सार्वजनिक मोंगो मोंगो ()) अपवाद फेंकता {नई मॉगोक्लेन्ट लौटें ("रिमोटहोस्ट: 27018"); } @ ओवरराइड संरक्षित स्ट्रिंग getDatabaseName () {वापसी "mydb"; }} अगर मैं एक ही पैकेज में अपने application.java के रूप में कक्षा डालता हूं, तो यह काम करता है। अगर मैं मायमोंगो कॉन्फिफ को अपने स्वयं के पैकेज में डाल दिया है I.e "my.config.package.settings", तो चल रहा है Application.java "MyMongoConfig" का उपयोग किए बिना डिफ़ॉल्ट MongoDB कनेक्शन सेटिंग्स का उपयोग करने के लिए प्रतीत होता है मेरा आवेदन एक अलग पैकेज में "MyMongoConfig" को स्वचालित रूप से क्यों नहीं ढूंढ रहा है? क्या ऐसा कोई उचित तरीका है या ऐसा करने के लिए उन्हें एक ही पैकेज में दोनों को बिना फेंकने के लिए?
मुख्य स्प्रिंग बूट अनुप्रयोग वर्ग को अन्य वर्गों के ऊपर रूट पैकेज में स्थित होना चाहिए ताकि आधार "खोज पैकेज" रूट एक हो। रूट से सभी पैकेज विन्यास वर्गों के लिए स्कैन किए जाएंगे।
यदि आप अन्य पैकेज में कुछ अन्य कॉन्फ़िगरेशन वर्गों को चुनना चुनते हैं, तो मेरा मानना है कि इन्हें निर्दिष्ट करने की आवश्यकता है उदाहरण के लिए, यदि आपका पैकेज "demo" और आपके मोजो कॉन्फ़िगरेशन क्लास में पैकेज "another.demo" में आपका मुख्य एप्लिकेशन क्लास है, तो आपके मुख्य एप्लिकेशन क्लास के लिए @ComponentScan एनोटेशन की आवश्यकता होगी: @ कॉन्फ़िगरेशन @ कंपाइनेंटस्कैन (बेसपैकेजेज = {"अन्य। डीएमओ", "डेमो"}) @ सक्षम सक्षम कंट्रोल सार्वजनिक वर्ग एप्लिकेशन {
Comments
Post a Comment