वसंत - बीन परिभाषा
आपके अनुप्रयोग की रीढ़ बनाने वाली और स्प्रिंग आईओसी कंटेनर द्वारा प्रबंधित वस्तुओं को कहा जाता है beans। बीन एक ऐसी वस्तु है, जो स्प्रिंग आईओसी कंटेनर द्वारा त्वरित, इकट्ठी और अन्यथा प्रबंधित की जाती है। ये सेम कॉन्फ़िगरेशन मेटाडेटा के साथ बनाए जाते हैं जो आपको कंटेनर में आपूर्ति करते हैं। उदाहरण के लिए, XML <bean /> परिभाषाओं के रूप में जो आप पहले ही पिछले अध्यायों में देख चुके हैं।
बीन परिभाषा में सूचना कहा जाता है configuration metadata, जो निम्नलिखित जानने के लिए कंटेनर के लिए आवश्यक है -
- बीन कैसे बनाएं
- बीन के जीवन चक्र का विवरण
- बीन की निर्भरता
उपरोक्त सभी कॉन्फ़िगरेशन मेटाडेटा निम्नलिखित गुणों के एक सेट में तब्दील हो जाता है जो प्रत्येक बीन परिभाषा बनाता है।
अनु क्रमांक। | गुण और विवरण |
---|---|
1 | class यह विशेषता अनिवार्य है और बीन बनाने के लिए उपयोग की जाने वाली बीन क्लास को निर्दिष्ट करती है। |
2 | name यह विशेषता विशिष्ट रूप से बीन पहचानकर्ता को निर्दिष्ट करती है। XMLbased कॉन्फ़िगरेशन मेटाडेटा में, आप बीन आइडेंटिफ़ायर को निर्दिष्ट करने के लिए आईडी और / या नाम विशेषताओं का उपयोग करते हैं। |
3 | scope यह विशेषता एक विशेष बीन परिभाषा से निर्मित वस्तुओं के दायरे को निर्दिष्ट करती है और बीन स्कोप अध्याय में इस पर चर्चा की जाएगी। |
4 | constructor-arg यह निर्भरता को इंजेक्ट करने के लिए उपयोग किया जाता है और बाद के अध्यायों में चर्चा की जाएगी। |
5 | properties यह निर्भरता को इंजेक्ट करने के लिए उपयोग किया जाता है और बाद के अध्यायों में चर्चा की जाएगी। |
6 | autowiring mode यह निर्भरता को इंजेक्ट करने के लिए उपयोग किया जाता है और बाद के अध्यायों में चर्चा की जाएगी। |
7 | lazy-initialization mode एक आलसी-आरंभिक बीन IoC कंटेनर को एक बीन उदाहरण बनाने के लिए कहता है जब इसे पहली बार अनुरोध किया जाता है, बजाय स्टार्टअप पर। |
8 | initialization method कंटेनर द्वारा सेम पर सभी आवश्यक गुणों के बाद कॉलबैक को कॉल किया जाना है। इसकी चर्चा बीन लाइफ साइकल चैप्टर में की जाएगी। |
9 | destruction method बीन युक्त कंटेनर को नष्ट होने पर कॉलबैक का उपयोग किया जाता है। इसकी चर्चा बीन लाइफ साइकल चैप्टर में की जाएगी। |
वसंत विन्यास मेटाडेटा
स्प्रिंग IoC कंटेनर उस प्रारूप से पूरी तरह से अलग है जिसमें यह कॉन्फ़िगरेशन मेटाडेटा वास्तव में लिखा गया है। स्प्रिंग कंटेनर में कॉन्फ़िगरेशन मेटाडेटा प्रदान करने के लिए तीन महत्वपूर्ण तरीके निम्नलिखित हैं -
- XML आधारित कॉन्फ़िगरेशन फ़ाइल।
- एनोटेशन-आधारित कॉन्फ़िगरेशन
- जावा-आधारित कॉन्फ़िगरेशन
आपने पहले ही देखा है कि XML-आधारित कॉन्फ़िगरेशन मेटाडेटा कंटेनर को कैसे प्रदान किया जाता है, लेकिन हमें XML-आधारित कॉन्फ़िगरेशन फ़ाइल का एक और नमूना अलग-अलग बीन परिभाषाओं के साथ देखना चाहिए जिसमें आलसी इनिशियलाइज़ेशन, इनिशियलाइज़ेशन मेथड और विनाश विधि शामिल है -
<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- A simple bean definition -->
<bean id = "..." class = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with lazy init set on -->
<bean id = "..." class = "..." lazy-init = "true">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with initialization method -->
<bean id = "..." class = "..." init-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- A bean definition with destruction method -->
<bean id = "..." class = "..." destroy-method = "...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
स्प्रिंग बीन्स को परिभाषित, कॉन्फ़िगर और बनाने के तरीके को समझने के लिए आप स्प्रिंग हैलो वर्ल्ड उदाहरण की जांच कर सकते हैं ।
हम एक अलग अध्याय में एनोटेशन आधारित कॉन्फ़िगरेशन के बारे में चर्चा करेंगे। जानबूझकर एक अलग अध्याय में चर्चा की जाती है क्योंकि हम चाहते हैं कि आप कुछ अन्य महत्वपूर्ण स्प्रिंग अवधारणाओं को समझें, इससे पहले कि आप एनोटेशन के साथ स्प्रिंग डिपेंडेंसी इंजेक्शन के साथ प्रोग्रामिंग शुरू करें।