स्प्रिंग प्रकार com.test.Example
के दो सेम पैदा करेगा और autowiring प्रकार या विधि नाम (या क्वालिफायर) के लिए किया जाएगा, देख Spring IOC
इस देखें साधारण परीक्षण:
इस वर्ग
public static class TestBean {
static int INT = 1;
public int test;
public TestBean() {
test = INT++;
}
}
के साथ
विन्यास xml:
<bean name="testBean" class="com.test.TestBean"/>
<bean name="myBean" class="com.test.TestBean"/>
वसंत कंटेनर परीक्षण के साथ JUnit4:
@Resource
TestBean testBean;
@Resource
TestBean myBean;
@Test
public void test() {
assertNotNull(testBean);
assertNotNull(myBean);
assertFalse(testBean == myBean);
assertFalse(testBean.test == myBean.test);
}
इस परीक्षा न असफल, जैसा कि आप देख, प्रकार TestBean के दो सेम बनाया जाता है।
स्प्रिंग डॉक्टर में इस हिस्से देखें:
संपत्ति नाम से byname
Autowiring। वसंत एक ही नाम के साथ एक बीन की तलाश करता है, जिसकी संपत्ति को स्वायत्त होने की आवश्यकता होती है। उदाहरण के लिए, यदि एक बीन परिभाषा नाम से स्वत: करने के लिए सेट की गई है, और इसमें एक मास्टर प्रॉपर्टी है (यानी, इसमें एक सेटमास्टर (..) विधि है), वसंत मास्टर नामक बीन परिभाषा की तलाश करता है, और इसे सेट करने के लिए इसका उपयोग करता है संपत्ति।
byType
संपत्ति को वास्तव में कंटेनर में मौजूद संपत्ति प्रकार का एक बीन मौजूद होने की अनुमति देता है। यदि एक से अधिक मौजूद हैं, तो घातक अपवाद फेंक दिया जाता है, जो इंगित करता है कि आप उस बीन के लिए टाइप ऑटोवॉयरिंग द्वारा उपयोग नहीं कर सकते हैं। यदि कोई मिलान करने वाले सेम नहीं हैं, तो कुछ भी नहीं होता है; संपत्ति सेट नहीं है।
कन्स्ट्रक्टर
टाइप टाइप के लिए एनालॉग, लेकिन कन्स्ट्रक्टर तर्कों पर लागू होता है। यदि कंटेनर में कन्स्ट्रक्टर तर्क प्रकार का बिल्कुल एक बीन नहीं है, तो एक घातक त्रुटि उठाई जाती है।
स्रोत
2013-10-11 18:17:17
एक सिंगलटन वस्तु। यदि हम कक्षा के एन सिंगलटन ऑब्जेक्ट की तुलना में बीन एन बार परिभाषित करेंगे। –
धन्यवाद @ आर्टूरो, मुझे एक ही संदेह था। अब स्पष्टता मिली है। –