समय-समय पर एक वस्तु - जावा, वसंत, जावा-ई, वसंत-एमवीसी, सिंगलटन पुनर्निर्माण

मैं अपनी सेवा को दूसरे में एकीकृत करने की कोशिश कर रहा हूंसेवा (सेवा बी)। सेवा बी के लिए क्लाइंट बनाने के लिए, मुझे टोकन प्राप्त करने और क्लाइंट बनाने के दौरान इसका उपयोग करने की आवश्यकता है। टोकन हर 72 घंटे की अवधि समाप्त हो जाता है। एक बार टोकन समाप्त हो जाने के बाद, ग्राहक भी समाप्त हो जाता है। तो मुझे ग्राहक को फिर से बनाने की जरूरत है।

अभी, क्लाइंट ऑब्जेक्ट एक सिंगलटन है, जो स्टार्ट अप के दौरान वसंत द्वारा तत्काल होता है। मैं हर 72 घंटों में इस वस्तु को फिर से बनाना चाहता हूं।

मैं सिंक्रनाइज़ेशन getInstance के साथ सिंगलटन का उपयोग करने के बारे में सोच रहा हूं। क्या ऐसा करने का कोई बेहतर तरीका है?

उत्तर:

जवाब के लिए 2 № 1

सिंगलटन ऐसा करने का सबसे अच्छा तरीका होगा। जब आप अपना टोकन प्राप्त करते हैं, तो उस समय के लिए एक स्थिर टाइमस्टैम्प चर बचाएं जब आपको टोकन मिल जाए। फिर, आपके में getInstance() function, check the timestamp against the current यह देखने के लिए कि क्या यह 72 घंटे से अधिक पुराना है। यदि ऐसा है, तो एक नया टोकन लें और इसे वापस करने से पहले उदाहरण को फिर से बनाएं, अगर ऐसा नहीं है, तो बस उदाहरण लौटाएं।

मैंने ओएथ प्रमाणीकरण का उपयोग करके कुछ ऐसा किया है, और इसे एक सरल और प्रभावी विधि माना है।


उत्तर № 2 के लिए 1

यदि आप क्लाइंट ऑब्जेक्ट का नया उदाहरण चाहते हैंहर बार जब आप अनुरोध करते हैं तो वसंत बीन के दायरे को सिंगलटन से प्रोटोटाइप में बदलें। जब भी आप अनुरोध करते हैं तो कंटेनर ऑब्जेक्ट का एक नया उदाहरण तैयार करेगा।

इसके अलावा आप क्वार्ट्ज शेड्यूलर का उपयोग कर सकते हैं और एक बना सकते हैंऑब्जेक्ट को दोबारा बनाने के लिए नौकरी (वास्तव में वसंत कंटेनर से नए संदर्भ पूछना) 72 घंटे के रूप में दोहराना अंतराल के साथ। आप आसानी से इनका पालन करके वसंत के साथ क्वार्ट्ज एकीकृत कर सकते हैं अनुदेश


संबंधित सवाल
सबसे लोकप्रिय