के साथ वसंत डिफ़ॉल्ट तारों में मुझे दो सेम मिल गए हैं। दोनों मेलिंग समारोह को लागू करते हैं। एक केवल तभी काम कर रहा है जब इसे किसी एप्लिकेशन सर्वर पर तैनात किया जाता है। दूसरा परीक्षण के लिए प्रयोग किया जाता है।प्रोफाइल
हमारे पास प्रत्येक डेवलपर और पर्यावरण के लिए प्रोफ़ाइल है। वास्तव में परीक्षण करते समय मैं केवल परीक्षण बीन को तार करना चाहता हूं। परीक्षण नहीं करते समय अन्य बीन का इस्तेमाल किया जाना चाहिए। मैं इसे कैसे संग्रहीत कर सकता हूं?
@Component
@Profile("localtest")
public class OfflineMail implements Mailing {}
समाधान दृष्टिकोण:
"डिफ़ॉल्ट" का उपयोग करते हुए मैं इस कहीं पढ़ा है, लेकिन कोई "देव" की तरह एक प्रोफ़ाइल के लिए "डिफ़ॉल्ट" के लिए फॉल-बैक हो रहा है:
@Component
@Profile("default")
public class OnlineMail implements Mailing {}
-> तारों के लिए कोई बीन के लिए अपवाद नहीं मिला।
प्रोफ़ाइल को छोड़कर:
@Component
public class OnlineMail implements Mailing {}
-> एक अनूठा अपवाद फेंकता है जब "localtest" प्रोफ़ाइल चल रहा है।
जोड़ा जा रहा है सभी प्रोफाइल:
@Component
@Profile("prod")
@Profile("integration")
@Profile("test")
@Profile("dev1")
@Profile("dev2")
@Profile("dev3")
...
public class OnlineMail implements Mailing {}
यह वास्तव में काम कर रहा है, फिर भी हमारे devs गिने नहीं कर रहे हैं वे "देव <WindowsLogin>" और प्रोफाइल को जोड़ने, एक सेम के लिए काम कर सकते हैं का उपयोग करें, लेकिन एक मिल जाएगा कई बीन्स के लिए इसका उपयोग करते समय परेशानी में क्योंकि यह निश्चित रूप से बदसूरत हो जाता है।
@Profile ("! Localtest") जैसे कुछ का उपयोग करना भी काम नहीं कर रहा है।
क्या कोई भी "कोई विशिष्ट बीन नहीं मिला है" डिफ़ॉल्ट रूप से तार प्राप्त करने के लिए कोई अच्छा तरीका जानता है?
'@ Component'' बिना @ Profile', डिफ़ॉल्ट सेम होने के लिए कुछ भी नहीं वायर्ड है। क्या आपने घटक के नाम को सेट करने के साथ अद्वितीय अपवाद से बचने की कोशिश की है? मेरा मतलब है, '@ कॉम्पोनेंट (" मेल ")' @Profile ("localtest") के साथ 'और इसके बिना? – n1ckolas