2010-07-14 11 views
6

JSR-250 सब @Resource एनोटेट तरीकों @PostConstruct विधि से पहले बुलाया जाएगा कहते हैं ..किसी भी @PostConstruct से पहले सभी @Resource इंजेक्शन फिर

मेरा प्रश्न है:

करता है इसका मतलब यह है कि सभी @Resource किसी संदर्भ में सभी बीन्स पर एनोटेटेड विधियों को किसी भी @ पोस्टस्टोनस्ट्रेट एनोटेटेड विधियों के नाम से पहले बुलाया जाएगा? या दूसरे शब्दों में एक बीन्स @ पोस्टकॉन्स्ट्रक्ट विधि को एक बार कहा जा सकता है जब इसकी निर्भरताओं को इंजेक्शन दिया गया हो, भले ही संदर्भ में अन्य बीन्स अभी भी इंजेक्शन पर निर्भर न हों?

सम्मान, टिम।

उत्तर

9

यह गारंटी है कि जब दिए गए बीन के @PostConstruct को कॉल किया जाता है, तो इसके सभी @Resource फ़ील्ड इंजेक्शन दिए जाएंगे। यदि इनमें से कोई भी इंजेक्शन अपने स्वयं के @Resource और @PostConstruct के साथ बीन्स हैं, तो उनको पहले से ही बुलाया जाएगा। दूसरे शब्दों में, उस समय तक @PostConstruct कहा जाता है, इसकी गारंटी है कि इसकी सभी निर्भरताओं को पूरी तरह से प्रारंभ किया गया है।

यह संभव है, और यह तथ्य संभावना में, कि BeanA का निर्माण किया और @PostConstruct के माध्यम से प्रारंभ BeanB से पहले भी instantiated किया गया है, अगरBeanB किया जाएगा BeanA पर कोई व्यक्त निर्भरता है।

+0

धन्यवाद केनी :) यह बताता है। –

संबंधित मुद्दे