आज, हम हमारे कोड में इस पद्धति पाया:स्टेटफुल सिंगलटन सेम ढूँढना
class Foo {
private List<String> errors;
public void addError(String error) { ... }
public List<String> getErrors();
}
कोड काम करने के लिए लगता है, यह एक सिंगलटन वसंत सेम है और यह कई स्वतंत्र स्थानों में इंजेक्ट किया है और सेम के उपभोक्ताओं मान लें कि उनमें से प्रत्येक की त्रुटियों की अपनी सूची है। तो यह सूक्ष्म कीड़े पेश करता है।
स्पष्ट समाधान डेवलपर्स को इस प्रकार की त्रुटि से बचने के लिए शिक्षित करना है, लेकिन मैं सोच रहा था कि कोई स्थैतिक या रनटाइम कोड विश्लेषण उपकरण है जो इस तरह की बग पा सकता है।
उदाहरण के लिए, एक बीन पोस्टप्रोसेसर बीन का विश्लेषण करने से पहले इसका विश्लेषण कर सकता है और निजी क्षेत्रों की तलाश कर सकता है जो @Autowired
नहीं हैं।
क्या हम उस निजी क्षेत्र को रीसेट करने के लिए @postConstruct का उपयोग कर सकते हैं? – sreeprasad
@ श्रीप्रसादडविंडनकुटी: आप कोशिश कर सकते हैं लेकिन यह काम नहीं करेगा क्योंकि '@ पोस्टकोनस्ट्रक्चर' को फू बनाने के दौरान केवल एक बार बुलाया जाएगा। आप क्षेत्र को रीसेट करने के लिए बीन ए में '@ पोस्टकोनस्ट्रक्चर' का उपयोग नहीं कर सकते हैं क्योंकि इससे बीन बी के लिए सूची भी स्पष्ट हो जाएगी। –
हालांकि एक बहुत साफ तरीका नहीं है, आप वसंत एपीओ का प्रयास कर सकते हैं, एडवाइस के बाद जोड़ें और उस विधि में आप इन क्षेत्रों को देख सकते हैं। –