क्या स्प्रिंग बूट के @ConfigurationProperties
एनोटेशन के साथ अपरिवर्तनीय (अंतिम) फ़ील्ड होना संभव है? उदाहरण नीचेअपरिवर्तनीय @ कॉन्फ़िगरेशनप्रॉपर्टीज
@ConfigurationProperties(prefix = "example")
public final class MyProps {
private final String neededProperty;
public MyProps(String neededProperty) {
this.neededProperty = neededProperty;
}
public String getNeededProperty() { .. }
}
दृष्टिकोण मैं अब तक की कोशिश की है: खाली और neededProperty
तर्क
- दो कंस्ट्रक्टर्स
- दो कंस्ट्रक्टर्स प्रदान करने के साथ
MyProps
वर्ग के एक@Bean
बनाना बीनnew MyProps()
- के साथ बनाया गया है
null
- दो कंस्ट्रक्टर्स प्रदान करने के साथ
MyProps
सेम प्रदान करने के लिए@ComponentScan
और@Component
का उपयोग करना।BeanInstantiationException
में- परिणाम ->
NoSuchMethodException: MyProps.<init>()
- परिणाम ->
एक ही रास्ता मैं यह काम कर रहा मिल गया है है प्रत्येक गैर अंतिम क्षेत्र के लिए गेटर/सेटर प्रदान करके।
मेरी जानकारी के लिए कम कर सकते हैं, तो आप क्या कर रहे हैं करने की कोशिश कर बॉक्स से बाहर काम नहीं करेगा। – geoand
यह दुखद है।बेशक, मैं हमेशा @ @ वैल्यू एनोटेशन के साथ कन्स्ट्रक्टर पैरामीटर का उपयोग कर सादे वसंत के साथ ऐसा कर सकता हूं। हालांकि, यह अच्छा होगा अगर स्प्रिंग बूट ने भी इसका समर्थन किया। – RJo
मैंने सोर्स कोड पर एक छोटा सा चोटी ली, लेकिन यह आपके द्वारा पूछे जाने वाले कुछ की तरह समर्थन करने के लिए गैर-तुच्छ है। बेशक मैं स्प्रिंग आंतरिक पर कोई विशेषज्ञ नहीं हूं इसलिए मुझे कुछ स्पष्ट याद आ रही है – geoand