मैं एक वसंत सेम में निम्नलिखित है @value परिभाषित करने के लिए:कैसे के रूप में वैकल्पिक
@Value("${myValue}")
private String value;
मूल्य सही ढंग से इंजेक्ट किया जाता है। हालांकि, परिवर्तनीय को वैकल्पिक होना आवश्यक है, इसे कमांड लाइन पैरामीटर के रूप में पारित किया जाता है (जिसे सरल कॉमांडलाइनप्रॉपर्टी स्रोत का उपयोग करके स्प्रिंग संदर्भ में जोड़ा जाता है), और यह तर्क हमेशा मौजूद नहीं होगा।
मैं कोशिश की है दोनों के लिए एक डिफ़ॉल्ट मान प्रदान करने के लिए निम्नलिखित:
@Value("${myValue:}")
@Value("${myValue:DEFAULT}")
लेकिन प्रत्येक मामले में, जब भी वहाँ एक वास्तविक मूल्य है कोलन के बाद डिफ़ॉल्ट तर्क इंजेक्ट किया जाता है - यह प्रतीत होता है क्या ओवरराइड वसंत इंजेक्षन चाहिए।
@Value निर्दिष्ट करने का सही तरीका क्या है?
धन्यवाद
यह बहुत अजीब है ... डिफ़ॉल्ट मान केवल डिफ़ॉल्ट मान के रूप में कार्य करना चाहिए (यानी जब संपत्ति परिभाषित नहीं की जाती है)। क्या आप अपना कथन जांच सकते हैं "वास्तविक मान होने पर भी डिफ़ॉल्ट मान इंजेक्शन दिया जाता है" (उदा। यदि पुरानी संकलित कक्षा नहीं है)? –
'@ वैल्यू (" $ {some.prop:} ") 'मेरे लिए काम करता है। उस चर पर यह एकमात्र एनोटेशन है। – Zarathustra
क्या आप अपनी एप्लिकेशन कॉन्फ़िगरेशन पोस्ट कर सकते हैं? –