पहली जावा ईई स्प्रिंग परियोजना के लिए आपका "सर्वोत्तम अभ्यास" क्या है?

मैं वर्तमान में स्प्रिंग ढांचे के साथ जावा ईई विकास में शामिल होने की कोशिश कर रहा हूं। जैसा कि मैं वसंत के लिए नया हूं, यह इमेजिंग करना मुश्किल है कि एक अच्छी चल रही परियोजना कैसे शुरू होनी चाहिए।

क्या आपके पास स्टार्टर के लिए कोई सर्वोत्तम प्रथाओं , tipps या प्रमुख DOs है? आपने स्प्रिंग - बड़ी परियोजना या छोटे ट्यूटोरियल जैसी एप्लिकेशन के साथ कैसे शुरुआत की? आपने तुरंत किस तकनीक का उपयोग किया: एओपी, जटिल हाइबरनेट ...

0
ro fr bn
क्या यह दोनों एक साथ होना चाहिए? एक समय में एक को संभालना आसान होगा यदि आप दोनों के लिए नए हैं (यह स्पष्ट नहीं है कि जावा ईई आपके लिए नया है)।
जोड़ा लेखक SteveD, स्रोत

11 उत्तर

जब तक मैंने वसंत का उपयोग किया है, तब तक यह वर्षों से रहा है, और मैं नहीं कह सकता कि मैं इसका प्रशंसक हूं, मुझे पता है कि ऐप फ्यूज टूल ( https://java.net/projects/appfuse/ ) उन सभी कलाकृतियों को उत्पन्न करने के संदर्भ में लोगों को बूटस्ट्रैप की सहायता करने में मददगार रहा है जिन्हें आपको जाने के लिए आवश्यक है।

0
जोड़ा

वसंत इकाई परीक्षण के बारे में भी बहुत अधिक है और इसलिए आपकी कक्षाओं की साक्ष्यता है। इसका मूल रूप से मॉड्यूलरलाइजेशन, चिंताओं को अलग करने, इंटरफेस आदि के माध्यम से कक्षा का संदर्भ देने के बारे में सोचने का मतलब है।

0
जोड़ा

मुझे वास्तव में वसंत पसंद आया .. यह आपके औसत जे 2 ईई जावा बीन्स में हवा की ताजा हवा थी ..

मैं उदाहरण प्रदान करने की सिफारिश करता हूं वसंत प्रदान करता है:

http://static.springframework.org/docs/Spring-MVC -चरण-दर-कदम/

इसके अलावा, मैंने पूर्ण मोंटी जाने का फैसला किया और मेरे स्प्रिंग एप्लिकेशन में हाइबरनेट जोड़ा;), क्योंकि स्प्रिंग हाइबरनेट के लिए उत्कृष्ट समर्थन प्रदान करता है ... :)

मेरे पास ऐसा नहीं है, जिसे मैंने कड़ी मेहनत (उत्पादन में उत्पाद) सीखा है ... यदि आप केवल कंट्रोलर इंटरफ़ेस को लागू करते हैं, और इंटरफ़ेस के साथ प्रदान किए गए कुछ डेटा के साथ एक मॉडल एंडव्यू ऑब्जेक्ट वापस लौटाते हैं, तो वसंत गारबैज को इकट्ठा करता है संसाधन, उन डेटा को कैश करने का प्रयास करने के लिए। तो उन मॉडलों और दृश्य वस्तुओं में बड़े डेटा डालने के लिए सावधान रहें, क्योंकि जब तक कि पृष्ठ को देखा गया हो, सर्वर के रूप में जब तक सर्वर हवा में होता है तब तक वे आपकी सर्वर मेमोरी को हॉग करेंगे ...

0
जोड़ा
हाइपरलिंक में अच्छी किताब
जोड़ा लेखक Anirudh, स्रोत

स्प्रिंग के दिल पर पहले फोकस करें: निर्भरता इंजेक्शन। एक बार जब आप डीआई का उपयोग करने के सभी तरीकों को देख सकें, तो एओपी, रीमोटिंग, जेडीबीसी टेम्पलेट इत्यादि जैसे अधिक रोचक टुकड़ों के बारे में सोचना शुरू करें। इसलिए मेरी सबसे अच्छी सलाह है कि स्प्रिंग का उपयोग कोर से निकल जाए।

सर्वश्रेष्ठ प्रणालियां? यदि आप मानक xml कॉन्फ़िगरेशन का उपयोग कर रहे हैं, तो व्यक्तिगत फ़ाइलों का आकार प्रबंधित करें और उन्हें समझदारी से टिप्पणी करें। आप सोच सकते हैं कि आप और अन्य आपकी बीन परिभाषाओं को पूरी तरह से समझेंगे, लेकिन व्यावहारिक रूप से वे सादे पुराने जावा कोड से वापस आने के लिए कुछ कठिन हैं।

सौभाग्य!

0
जोड़ा

Start here - I actually think it's among the best Software Dev books that I've read.
Expert Spring MVC And Web Flow

एमवीसी कक्षाओं के लिए नई एनोटेशन-आधारित कॉन्फ़िगरेशन जानें। यह वसंत 2.5 का हिस्सा है। एनोटेशन-आधारित कक्षाओं का उपयोग लेखन इकाई को बहुत आसान की एक बिल्ली का परीक्षण करने जा रहा है। एक्सएमएल की मात्रा में कटौती करने में भी सक्षम होना एक अच्छी बात है।

ओह हाँ यूनिट टेस्ट - यदि आप वसंत का उपयोग कर रहे हैं, तो आप यूनिट परीक्षण बेहतर हो सकते हैं। :) अपने सभी वेब और सेवा परत वर्गों के लिए यूनिट परीक्षण लिखें।

डोमेन संचालित डिजाइन पर पढ़ें। तथ्य यह है कि आप स्प्रिंग एप्लिकेशन के सभी स्तरों पर डोमेन ऑब्जेक्ट क्लास का उपयोग कर सकते हैं, इसका मतलब है कि आपके पास एक बहुत ही शक्तिशाली डोमेन मॉडल होगा। इसका लाभ उठाएं

हालांकि, फॉर्म आबादी के लिए अपने डोमेन ऑब्जेक्ट क्लासेस का उपयोग करते समय, आप स्प्रिंग फ्रेमवर्क के आसपास हाल की सुरक्षा चिंताओं पर ध्यान देना चाहेंगे। सर्वर साइड पर एक चर्चा छेद को बंद करने का तरीका बताती है टीका - टिप्पणी।

0
जोड़ा

शुरू करने का एक अच्छा तरीका "स्प्रिंगफ्रेमवर्क" पर ध्यान केंद्रित करना है। स्प्रिंग पोर्टफोलियो एंटरप्राइज़ सॉफ्टवेयर के विभिन्न पहलुओं के आसपास परियोजनाओं का एक बड़ा ढेर बन गया है। शुरुआत में कोर पर चिपके रहें और अवधारणाओं को समझने की कोशिश करें। नवीनतम बाइनरी डाउनलोड करें और कोर से परिचित होने के बाद वसंत के पेटीक्लिक उदाहरण देखें। यह स्प्रिंगसोर्स की पेशकश की विभिन्न परियोजनाओं का काफी अच्छा अवलोकन देता है।

हालांकि दस्तावेज़ीकरण बहुत अच्छा है, मैं एक अनुशंसा करता हूं पुस्तक के बाद आप कोर की अवधारणाओं को समझते हैं। जो मुझे दस्तावेज़ीकरण के साथ समस्याग्रस्त पाया गया है, वह यह है कि यह गहराई से नहीं है और आपको आवश्यक सभी विवरण नहीं दे सकता है।

0
जोड़ा

स्प्रिंग 2.5 और 3.0 के रिलीज के साथ, मुझे लगता है कि अब लाभ लेने के लिए सबसे महत्वपूर्ण सर्वोत्तम प्रथाओं में से एक वसंत एनोटेशन हैं। नियंत्रकों, सेवाओं और रेपॉजिटरीज़ के लिए टिप्पणियां आपको एक टन बचा सकती हैं, जिससे आप अपने ऐप के व्यावसायिक तर्क पर ध्यान केंद्रित कर सकते हैं, और संभावित रूप से आप अपने सभी ऑब्जेक्ट सादे पुराने जावा ऑब्जेक्ट्स (पीओजेओ) को कर सकते हैं।

0
जोड़ा

"... आपने तुरंत किस तकनीक का उपयोग किया: एओपी, कॉम्प्लेक्स हाइबरनेट ..." - मैं कहूंगा कि एक बेहतर सवाल यह पूछना होगा कि लोगों ने तुरंत क्या उपयोग नहीं किया। मैं उस सूची में उद्धृत उदाहरण जोड़ दूंगा।

स्प्रिंग एमवीसी और जेडीबीसी टेम्पलेट मेरी शुरुआती सिफारिशें होगी। आप बस उन लोगों के साथ बहुत लंबा रास्ता तय कर सकते हैं।

मेरी सिफारिश वसंत वास्तुशिल्प सिफारिशों का ईमानदारी से पालन करना होगा। उनके लेयरिंग विचारों का प्रयोग करें। सुनिश्चित करें कि आपकी वेब परत बाकी से पूरी तरह से अलग करने योग्य है। आप वेब स्तरीय केवल सेवा परत के माध्यम से बैक एंड के साथ इंटरैक्ट करने देकर ऐसा करते हैं।

यदि आप उस सेवा परत का पुन: उपयोग करना चाहते हैं, तो स्प्रिंग "अनुबंध प्रथम" वेब सेवाओं का उपयोग करके इसका खुलासा करना एक अच्छी सिफारिश है। यदि आप एक्सएमएल संदेशों से आगे बढ़ते हैं जो आप आगे और आगे जाते हैं, तो आपके क्लाइंट और सर्वर को पूरी तरह से डीकॉप्ल किया जा सकता है।

सर्वोत्तम वसंत समर्थन वाला आईडीई इंटेलिजे है। कुछ रुपये खर्च करने लायक है।

0
जोड़ा

सबसे पहले वसंत मॉड्यूलरिटी के बारे में है और सबसे अच्छा काम करता है अगर कोई छोटे घटकों को लिखने पर केंद्रित होता है जो एक काम करते हैं और इसे अच्छी तरह से करते हैं।

यदि आप सामान्य रूप से सर्वोत्तम प्रथाओं का पालन करते हैं जैसे:

  • अमूर्त वर्गों के बजाय इंटरफेस को परिभाषित करना
  • अपरिवर्तनीय प्रकार बनाना
  • निर्भरता को एक वर्ग के लिए यथासंभव कम रखें।
  • प्रत्येक वर्ग को एक काम करना चाहिए और इसे अच्छी तरह से करना चाहिए। बिग मोनोलिथिक क्लासेस चूसते हैं, उन्हें परीक्षण करना मुश्किल होता है और उपयोग करना मुश्किल होता है।

यदि आपके घटक छोटे हैं और उपरोक्त dogmas का पालन करें तो उन्हें तार और अन्य सामान के साथ खेलने के लिए आसान होना चाहिए। उपरोक्त बिंदु स्वाभाविक रूप से स्प्रिंग ढांचे के बारे में भी सच हैं।

पुनश्च

उपरोक्त बिंदुओं को न सुनें, वे जो कुछ भी करने के बारे में बात कर रहे हैं। कुछ सीखने के बजाय सोचने के लिए सीखना और अधिक महत्वपूर्ण है। मनुष्य सोच सकते हैं, कुछ दोहराना चालाक नहीं है, सोच है।

0
जोड़ा

यदि आप बस इसमें थोड़ा सा झुकाव देख रहे हैं और देखें कि आपको यह पसंद है, तो मैं स्प्रिंग के जेडीबीसी और/या हाइबरनेट समर्थन का उपयोग करके डीएओ परत से शुरू करने की सलाह देता हूं। यह आपको कई मूल अवधारणाओं के बारे में बताएगा, लेकिन ऐसा कुछ ऐसा करें जो आपके बाकी ऐप से अलग करना आसान हो। यह वह मार्ग है जिसका मैंने पालन किया था, और वसंत के साथ एक पूर्ण आवेदन बनाने में इससे पहले यह अच्छा गर्म था।

0
जोड़ा

छोटी युक्ति - मुझे अनुप्रयोग चिंता के आधार पर मेरी स्प्रिंग एक्सएमएल संदर्भ फाइलों को मॉड्यूलर और स्पष्ट रूप से लेबल करने में मदद मिली है। यहां एक वेब ऐप के लिए एक उदाहरण दिया गया है जिस पर मैंने काम किया था:

  • MyProject/src/main/resources/spring /
    • datasource.xml - My single data source bean.
    • persistence.xml - My DAOs/Repositories. Depends on datasource.xml beans.
    • services.xml - Service layer implementations. These are usually the beans to which I apply transactionality using AOP. Depends on persistence.xml beans.
    • controllers.xml - My Spring MVC controllers. Depends on services.xml beans.
    • views.xml - My view implementations.

यह सूची न तो सही और न ही संपूर्ण है, लेकिन मुझे उम्मीद है कि यह इस बिंदु को दर्शाता है। जो भी नामकरण रणनीति और ग्रैन्युलरिटी आपके लिए सबसे अच्छा काम करती है चुनें।

मेरे (सीमित) अनुभव में, मैंने इस दृष्टिकोण को निम्नलिखित लाभों का पालन किया है:

स्पष्ट वास्तुकला

स्पष्ट रूप से नामित संदर्भ फाइलें उन लोगों को आपकी परियोजना संरचना से अपरिचित मानती हैं बीन परिभाषाओं की तलाश शुरू करने के लिए जगह। सर्कुलर/अवांछित निर्भरताओं का पता लगाना थोड़ा आसान हो सकता है।

डोमेन डिज़ाइन में सहायता करता है

यदि आप एक बीन परिभाषा जोड़ना चाहते हैं, लेकिन यह आपकी किसी भी संदर्भ फाइल में अच्छी तरह से फिट नहीं है, तो शायद एक नई अवधारणा या चिंता उभर रही है? उदाहरण:

  • मान लें कि आप अपनी सेवा परत को एओपी के साथ लेनदेन करना चाहते हैं। क्या आप उन बीन परिभाषाओं को services.xml में जोड़ते हैं, या उन्हें अपने <�कोड> लेनदेनPolicy.xml में डालते हैं? अपनी टीम के साथ बात करो। क्या आपकी लेनदेन नीति प्लग करने योग्य होनी चाहिए?
  • अपनी controllers.xml फ़ाइल में Acegi/Spring सुरक्षा सेम जोड़ें, या एक security.xml संदर्भ फ़ाइल बनाएं? क्या आपके पास विभिन्न तैनाती/वातावरण के लिए अलग-अलग सुरक्षा आवश्यकताएं हैं?

एकीकरण परीक्षण

आप एकीकरण परीक्षण के लिए अपने आवेदन का एक सबसेट वायरस कर सकते हैं (उदा: उपर्युक्त फाइलें, डेटाबेस को जांचने के लिए आपको केवल datasource.xml और persistence.xml बनाने के लिए आवश्यक है। फलियां)।

विशेष रूप से, आप एकीकरण परीक्षा वर्ग को इस प्रकार बता सकते हैं:

@ContextConfiguration(locations = { "/spring/datasource.xml" , "/spring/persistence.xml" })

स्प्रिंग आईडीई के बीन्स ग्राफ़ के साथ अच्छी तरह से काम करता है

बहुत ध्यान केंद्रित और अच्छी तरह से नामित संदर्भ फाइलें होने से कस्टम बीन्स कॉन्फिगसेट्स को स्प्रिंग आईडीई के बीन्स ग्राफ । मैंने नए टीम के सदस्यों को हमारे आवेदन संगठन के उच्च स्तरीय अवलोकन देने के लिए पहले इसका उपयोग किया है।

0
जोड़ा