यद्यपि थ्रेड सुरक्षा के संदर्भ में एक स्थिर ObjectMapper घोषित करना सुरक्षित है, आपको पता होना चाहिए कि जावा में स्थिर ऑब्जेक्ट चर का निर्माण करना बुरा अभ्यास माना जाता है। अधिक जानकारी के लिए, देखें कि स्थिर चर को बुराई क्यों माना जाता है? (और यदि आप चाहें, तो मेरा जवाब )
संक्षेप में, स्टेटिक्स से बचना चाहिए क्योंकि संक्षिप्त इकाई परीक्षणों को लिखना मुश्किल हो जाता है। उदाहरण के लिए, एक स्थिर अंतिम ObjectMapper के साथ, आप डमी कोड या नो-ऑप के लिए JSON क्रमांकन को स्वैप नहीं कर सकते।
इसके अलावा, एक स्थैतिक फाइनल आपको रनटाइम पर कभी भी ObjectMapper को पुन: कॉन्फ़िगर करने से रोकता है। अब आप इसके लिए कोई कारण नहीं बता सकते हैं, लेकिन यदि आप अपने आप को एक स्थिर अंतिम पैटर्न में बंद कर देते हैं, तो क्लास लोडर को फाड़ने के लिए कुछ भी कम नहीं होने देता है।
ObjectMapper के मामले में यह ठीक है, लेकिन सामान्य तौर पर यह बुरा व्यवहार है और आपके लंबे समय तक जीवित वस्तुओं का प्रबंधन करने के लिए एक सिंगलटन पैटर्न या व्युत्क्रम नियंत्रण का उपयोग करने पर कोई फायदा नहीं है।
ObjectMapper
बाद भी थ्रेड-सुरक्षितObjectMapper#setDateFormat()
है। यह ज्ञात है किSimpleDateFormat
थ्रेड सुरक्षित नहीं है , इस प्रकारObjectMapper
यह तब तक नहीं होगा जब तक कि यहSerializationConfig
प्रत्येक के पहले क्लोन न होwriteValue()
(मुझे संदेह है)। क्या आप मेरे डर को मिटा सकते हैं?