वसंत में संभव है कि बीन के लिए कक्षा में सार्वजनिक कन्स्ट्रक्टर नहीं है लेकिन केवल निजी है? बीन बनने पर यह निजी कन्स्ट्रक्टर लागू होगा? धन्यवाद।निजी कन्स्ट्रक्टर के साथ जावा स्प्रिंग बीन
उत्तर
हां, वसंत निजी रचनाकारों का आह्वान कर सकता है। यदि दृश्यता के बावजूद, सही तर्क के साथ एक कन्स्ट्रक्टर पाता है, तो यह इसके कन्स्ट्रक्टर को सुलभ बनाने के लिए प्रतिबिंब का उपयोग करेगा।
क्या आप मुझे दस्तावेज़ों का संदर्भ दे सकते हैं? कन्स्ट्रक्टर में पैरामीटर होते हैं, और xml फ़ाइल में इस तर्क के लिए मान निर्दिष्ट किए जाते हैं। – user710818
आपका मतलब है कि यदि एक बीन विशेष रूप से निजी बीन() {...} वसंत की तरह कुछ आह्वान कर सकता है? यह कैसे संभव है, जो "निजी" के पूरे उद्देश्य को निंदा करता है। –
क्षमा करें, मैं शायद इसके बारे में गलत हूं केवल नो-एर्ग कन्स्ट्रक्टर नहीं। मैं बस अपनी परियोजनाओं पर जो देखा है उससे जा रहा हूं। मैं नहीं कह सकता कि मैंने कभी इसे स्प्रिंग प्रलेखन में कहीं भी देखा है। लेकिन यह वर्ग के लिए जावाडोक है जो तत्काल करने के लिए ज़िम्मेदार है।http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/BeanUtils.html#instantiateClass(java.lang.reflect.Constructor,%20java.lang.Object .. ।) –
आपके पास आमतौर पर इस तरह के सेम में एक स्थिर फैक्ट्री विधि होगी, आप उस बीन का उदाहरण प्राप्त करने के लिए वसंत के लिए उस विधि को निर्दिष्ट कर सकते हैं। 3.3.1.3 here. देखें दृश्यता प्रतिबंधों के मुकाबले स्प्रिंग द्वारा इसकी अनुशंसा की जाती है।
अजीब, कोई स्थैतिक विधि नहीं है, कोई सार्वजनिक कन्स्ट्रक्टर नहीं है, लेकिन जब मैं डीबग करता हूं - निजी कन्स्ट्रक्टर ने आह्वान किया! sun.reflect.NativeConstructorAccessorImpl – user710818
विनिर्देशों/कोड के बिना आगे टिप्पणी करना संभव नहीं होगा! –
मुझे लगता है कि आप गलत हैं। कोई विशिष्ट कोड नहीं है - मैं केवल मानक सूरज/वसंत विधियों को डीबगर में देखता हूं। – user710818
तुम हमेशा The IoC container: Instantiation using an instance factory method से नहीं बल्कि एक डिफ़ॉल्ट निर्माता पर भरोसा करने की बजाय सेम बनाने के लिए, एक कारखाने विधि का उपयोग कर सकते हैं:
<!-- the factory bean, which contains a method called createInstance() -->
<bean id="serviceLocator" class="com.foo.DefaultServiceLocator">
<!-- inject any dependencies required by this locator bean -->
</bean>
<!-- the bean to be created via the factory bean -->
<bean id="exampleBean"
factory-bean="serviceLocator"
factory-method="createInstance"/>
यह लाभ है कि आप अपने सेम लिए गैर-सामान्य कंस्ट्रक्टर्स का उपयोग कर सकते है, और फैक्ट्री विधि बीन के लिए निर्भरता भी इंजेक्शन दी जा सकती है।
दिलचस्प है, लेकिन मुझे कारखाना नहीं मिल रहा है। एक और तरीका मौजूद हो सकता है? – user710818
@ मैथ्यू: वह कुछ भयानक तीसरे पक्ष के कोड के आसपास वसंत को दोबारा शुरू कर रहा है। यह गन्दा होने के लिए सिर्फ _bound_ है। –
@ डोनाल, नहीं, मुझे नहीं पता था कि उन्होंने टिप्पणी में क्या कहा था। –
हां, निजी रचनाकार वसंत द्वारा बुलाए जाते हैं। मेरे कोड पर विचार करें:
बीन परिभाषा फ़ाइल:
<bean id="message" class="com.aa.testp.Message">
<constructor-arg index="0" value="Hi Nice"/>
</bean>
बीन वर्ग:
package com.aa.testp;
public class Message {
private String message;
private Message(String msg) {
// You may add your log or print statements to check execution or invocation
message = msg;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void display() {
System.out.println(" Hi " + message);
}
}
उपरोक्त कोड ठीक काम करता है। इसलिए, वसंत ने निजी कन्स्ट्रक्टर का आह्वान किया।
- 1. स्प्रिंग एचटीपी जावा कॉन्फ़िगरेशन बीन
- 2. बीन के कन्स्ट्रक्टर
- 3. बीन स्प्रिंग
- 4. स्प्रिंग बीन
- 5. स्प्रिंग बीन
- 6. जावा: टाइप पैरामीटर के साथ निजी कन्स्ट्रक्टर तक पहुंच
- 7. जब बीन में वर्र्गस कन्स्ट्रक्टर
- 8. जानबूझकर स्प्रिंग बीन को
- 9. स्प्रिंग 3 बीन
- 10. एक स्प्रिंग बीन/इंटरफ़ेस
- 11. स्प्रिंग बीन हैंडल कंसुरेंसी
- 12. स्प्रिंग बीन इंस्टेंटेशन ऑर्डरिंग
- 13. स्प्रिंग अनुरोध स्कोप बीन
- 14. जावा में, मैं एक निजी कन्स्ट्रक्टर के साथ कक्षा कैसे बना सकता हूं जिसका सुपरक्लास भी निजी कन्स्ट्रक्टर है?
- 15. निजी कन्स्ट्रक्टर और अंतिम
- 16. एनोटेशन के साथ प्रोटोटाइप स्कोप्ड स्प्रिंग बीन बनाएं?
- 17. एक स्थिर आंतरिक वर्ग कन्स्ट्रक्टर से वसंत बीन कैसे बनाएं?
- 18. स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट बीन स्कोप
- 19. स्प्रिंग एमवीसी कोई डिफ़ॉल्ट कन्स्ट्रक्टर नहीं मिला?
- 20. निजी कन्स्ट्रक्टर और सार्वजनिक पैरामीटर कन्स्ट्रक्टर
- 21. स्प्रिंग के थ्रेडपूलएक्सटेक्टर फैक्टरीबीन फैक्ट्री बीन
- 22. स्प्रिंग जावा कॉन्फ़िगरेशन - जावा आधारित कॉन्फ़िगरेशन के साथ बीन्स-रेफरेंस
- 23. निजी कन्स्ट्रक्टर के साथ आंतरिक कक्षा को इंस्टेंट करना
- 24. जावा बीन
- 25. जावा बीन
- 26. "निजी कन्स्ट्रक्टर कैप्चर" मुहावरे का जावा उदाहरण क्या है?
- 27. वैकल्पिक पैरामीटर के साथ जावा कन्स्ट्रक्टर/विधि?
- 28. कन्स्ट्रक्टर को निजी या सार्वजनिक
- 29. कन्स्ट्रक्टर-Arg और संपत्ति बीन परिभाषा
- 30. स्प्रिंग बीन अपने स्वयं के धागे में चल रहा है
इसे कैसे आज़माएं और फिर परिणाम पोस्ट करने के बारे में? – dm3
यह मुश्किल है - मेरे पास सभी स्रोत नहीं हैं। – user710818