मैं जावा के लिए स्प्रिंग फ्रेमवर्क (रॉड जॉनसन द्वारा) का उत्साही प्रशंसक हूं। मैं पाइथन सीख रहा हूं और पाइथन के लिए वसंत के बारे में जानने के लिए उत्साहित था। मुझे वसंत के इन दो स्वादों के की तुलना में समुदाय के विचारों को सुनने में रुचि होगी। यह पाइथन के प्रतिमानों को कितनी अच्छी तरह फिट करता है आदिस्पा के लिए स्प्रिंग जावा के लिए स्प्रिंग के साथ तुलना करता है
उत्तर
प्रकटीकरण: मैं स्प्रिंग अजगर के लिए परियोजना का नेतृत्व कर रहा हूँ, ताकि आप विचार कर सकते हैं मेरी राय पक्षपातपूर्ण।
मुझे लगता है कि स्प्रिंग पायथन द्वारा प्रदान किए गए कई विकल्प उपयोगी हैं: aspect oriented programming, dependency injection, remoting, security, and easy database access।
पहलू उन्मुख प्रोग्रामिंग, जैसा कि वे कहते हैं, जावा से अजगर के साथ कफ को कार्यान्वित करना आसान है। लेकिन स्प्रिंग पायथन अपने स्रोत कोड को संपादित किए बिना मौजूदा पायथन मॉड्यूल में जोड़ने के लिए काफी आसान बनाता है। अन्य समाधानों को मेटा-प्रोग्रामिंग या मूल स्रोत कोड को संशोधित करने की आवश्यकता होती है। मेरे पास पहले से ही एक व्यक्ति हमारे मंचों पर जा रहा है कि एक पायगैम एप्लिकेशन में इंटरसेप्टर जोड़ने का तरीका पूछता है, इसलिए वह कुछ कोड को "टैप" कर सकता है।
कई लोग जल्दी से assume "dependency injection" or "IoC" instantly means "XML configuration files"। मामला नहीं। जबकि हम एक एक्सएमएल कॉन्फ़िगरेशन का समर्थन करते हैं, तो सीधे पाइथन सजावट का उपयोग करने के लिए सीधे छलांग लगाएं।
मुझे पहले से ही एक ऐसी कंपनी के बारे में पता है जो स्प्रिंग पायथन का उपयोग अपने सिस्टम के एक प्रमुख टुकड़े के रूप में कर रहा है। वे सुधार करने, नई सुविधाओं को जोड़ने, और आम तौर पर इसे अपने समाधान के एक टुकड़े के रूप में उपयोग करने में रुचि रखते हैं। उन्होंने ज्योथन के अंदर इसे चलाने के साथ भी प्रयोग किया है, अगर आपकी रूचि पिक्चर हो।
दिन के अंत में, मेरा सुझाव सभी सुविधाओं की जांच करना है, और देखें कि उनमें से कोई भी आपकी आवश्यकताओं के अनुरूप है या नहीं। चाहे वह अनावश्यक जटिलता या सिक्योरिटी मूल्य जोड़ रहा हो, केवल आपके द्वारा निर्धारित किया जा सकता है। आपको सब कुछ उपयोग करने की ज़रूरत नहीं है; केवल आपको क्या चाहिए उपलब्ध होने पर कुछ और जानकारी प्राप्त करने के लिए, मैं आपको Introduction to Spring Python देखने के लिए आमंत्रित करता हूं, जिसे मैंने स्प्रिंगऑन अमेरिका 2008 कॉन्फ़्रेंस में प्रस्तुत किया था।
निर्भरता इंजेक्शन ढांचे गतिशील रूप से टाइप की गई भाषा में लगभग उतने उपयोगी नहीं हैं। उदाहरण के लिए देखें प्रस्तुति Dependency Injection: Vitally important or totally irrelevant? जावा में निर्भरता इंजेक्शन ढांचे द्वारा प्रदान की गई लचीलापन महत्वपूर्ण है, जबकि पायथन में आमतौर पर अनियंत्रित जटिलता में परिणाम होता है।
इसका मतलब यह नहीं है कि सिद्धांत गलत हैं। इस उदाहरण कैसे सरल मुहावरे का उपयोग करके वर्गों के बीच ढीला संयोजन को प्राप्त करने के देखें:
# A concrete class implementing the greeting provider interface
class EnglishGreetingProvider(object):
def get_greeting(self, who):
return "Hello %s!" % who
# A class that takes a greeting provider factory as a parameter
class ConsoleGreeter(object):
def __init__(self, who, provider=EnglishGreetingProvider):
self.who = who
self.provider = provider()
def greet(self):
print(self.provider.get_greeting(self.who))
# Default wiring
greeter = ConsoleGreeter(who="World")
greeter.greet()
# Alternative implementation
class FrenchGreetingProvider(object):
def get_greeting(self, who):
return "Bonjour %s!" % who
greeter = ConsoleGreeter(who="World", provider=FrenchGreetingProvider)
greeter.greet()
6 साल बाद ... :) आप नेस्टेड निर्भरताओं को कैसे संभालेंगे (बी (सी (डी)))? कन्स्ट्रक्टर में अभी तक एक और पैरामीटर जोड़ने के बिना आप अज्ञात संख्या की निर्भरताओं को कैसे संभालेंगे? – dakt
अच्छी चीजें। मैंने स्प्रिंग जावा, स्प्रिंग डॉट नेट का उपयोग किया है और अब स्प्रिंग पायथन से शुरू किया है। प्रोग्रामर के लिए पाइथन हमेशा उपयोग करना बहुत आसान रहा है; मुझे लगता है, खासकर जब से लिखना आसान है। मैंने स्प्रिंग डॉट नेट को थोड़ा उलझन में पाया, लेकिन स्प्रिंग जावा और पायथन दोनों समान दिखते हैं। मुझे यकीन है कि उनके मतभेद हैं, लेकिन कम से कम मैं वसंत के पायथन कार्यान्वयन के साथ इतनी उलझन में नहीं हूं।
- 1. जावा/स्प्रिंग आधारित वेबसाइटों के लिए वैकल्पिक
- 2. जावा/स्प्रिंग कॉन्फ़िगर के लिए चिड़ियाघर?
- 3. के लिए स्प्रिंग डाटा बाकी
- 4. निजी कन्स्ट्रक्टर के साथ जावा स्प्रिंग बीन
- 5. स्प्रिंग टेस्ट के लिए टेस्टकॉन्टेक्स्ट कैसे बनाएं?
- 6. स्प्रिंग फ़ाइल के साथ समस्या
- 7. स्प्रिंग जावा कॉन्फ़िगरेशन - जावा आधारित कॉन्फ़िगरेशन के साथ बीन्स-रेफरेंस
- 8. एनोटेट तर्क के लिए स्प्रिंग AOP pointcut
- 9. स्प्रिंग: केवल पढ़ने के लिए लेन-देन
- 10. जावा ईई के लिए स्प्रिंग सुरक्षा जैसे फ्रेमवर्क?
- 11. स्प्रिंग जावा
- 12. स्प्रिंग एलडीएपी - सफल कनेक्शन के लिए बाध्य
- 13. जावा - जार फ़ाइल के लिए स्प्रिंग प्रॉपर्टी फ़ाइल कॉन्फ़िगरेशन
- 14. स्प्रिंग बीन्स के लिए मानक नामकरण
- 15. कन्स्ट्रक्टर तर्क के लिए स्प्रिंग पी नेमस्पेस?
- 16. स्प्रिंग रेस्टफुल वेब सर्विसेज के लिए सुरक्षा
- 17. कस्टम UserDetails के लिए स्प्रिंग सुरक्षा नमक
- 18. क्या कोई अब स्प्रिंग फ्रेमवर्क के लिए जावा-कॉन्फिगर का उपयोग करता है?
- 19. बीन्स के लिए स्प्रिंग पी नेमस्पेस पर सर्वसम्मति क्या है?
- 20. स्प्रिंग के फॉर्म टैग
- 21. स्प्रिंग के @ अनुरूपित एनोटेशन
- 22. जावा स्प्रिंग एप्लिकेशन प्रोफाइलिंग
- 23. एचटीटीपीएस लॉगिन स्प्रिंग सिक्योरिटी के साथ एचटीएमएल
- 24. स्प्रिंग
- 25. स्प्रिंग के लोडटाइमवेवर एजेंट
- 26. स्प्रिंग के आरईएसटी टेम्पलेट
- 27. जावा आधारित कॉन्फ़िगरेशन के साथ स्प्रिंग 3.2 यूनिट परीक्षण
- 28. जावा, हाइबरनेट और स्प्रिंग
- 29. जावा स्प्रिंग एमवीसी
- 30. स्प्रिंग
स्प्रिंग पायथन लिंक का परिचय टूटा हुआ है। अनुरोध है कि आप एक नवीनतम लाइव लिंक – gansub
https://www.slideshare.net/gturnquist/intro-to-spring-python – gregturn
जोड़ें, वैसे भी, एक पुस्तक => https://www.packtpub.com/application भी है लिए विकास/वसंत-अजगर-11 – gregturn