दिलचस्प पोस्ट
क्या ब्राउज़र हर पृष्ठ लोड पर जावास्क्रिप्ट पार्स करते हैं? VB.net JSON Deserialize एक सरणी से बेतरतीब ढंग से एक तत्व कैसे चुनें फ़ोल्डर नहीं प्राप्त कर सकते हैं कि मैं सिर्फ गूगल ड्राइव पर बनाया है क्या नोडजेएस वास्तव में एक-थ्रेडेड है? कन्स्ट्रक्टर्स बनाम फैक्टरी तरीके आप जावा ऑब्जेक्ट को एचटीटीपी सत्र में कैसे संग्रहीत करते हैं? कैसे mongoDB में संग्रह रिकॉर्ड के अंदर सरणी को सॉर्ट करने के लिए मैं Xcode 4 पर कैसे कमजोर लिंक चौखटे? आप PostgreSQL में सत्र ID के लिए उपयुक्त एक यादृच्छिक स्ट्रिंग कैसे बनाते हैं? jQuery – कई तत्वों लपेट करने के लिए लपेटें () का उपयोग करें? सुपर () को एक व्युत्पन्न वर्ग में बुलाते समय, क्या मैं स्वयं .__ वर्ग__ में पारित कर सकता हूं? पायथन में डिवीजन 2.7 और 3.3 मॉडल व्यू प्रोजेक्शन मैट्रिक्स का उद्देश्य क्या एचटीएमएल 5 कस्टम डेटा आईटी 6 में "काम" करता है?

प्रबंधित बीन कन्स्ट्रक्टर में इंजेक्शन निर्भरता तक पहुंचने के कारण NullPointerException

मैं एक प्रबंधित संपत्ति के रूप में डीएओ को लगाने की कोशिश कर रहा हूं।

public class UserInfoBean { private User user; @ManagedProperty("#{userDAO}") private UserDAO dao; public UserInfoBean() { this.user = dao.getUserByEmail("test@gmail.com"); } // Getters and setters. } 

सेम के निर्माण के बाद डीएओ ऑब्जेक्ट को इंजेक्ट किया जाता है, लेकिन यह कन्स्ट्रक्टर में null है और इसलिए NullPointerException कारण होता है। इंजेक्टेड प्रबंधित संपत्ति का उपयोग करके प्रबंधित बीन को कैसे आरंभ कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "प्रबंधित बीन कन्स्ट्रक्टर में इंजेक्शन निर्भरता तक पहुंचने के कारण NullPointerException"

इंजेक्शन केवल निर्माण के बाद ही हो सकता है क्योंकि निर्माण के पहले कोई योग्य इंजेक्शन लक्ष्य नहीं है। निम्न गंदे उदाहरण की कल्पना करो:

 UserInfoBean userInfoBean; UserDao userDao = new UserDao(); userInfoBean.setDao(userDao); // Injection takes place. userInfoBean = new UserInfoBean(); // Constructor invoked. 

यह तकनीकी तौर पर संभव नहीं है। हकीकत में यह है कि क्या हो रहा है:

 UserInfoBean userInfoBean; UserDao userDao = new UserDao(); userInfoBean = new UserInfoBean(); // Constructor invoked. userInfoBean.setDao(userDao); // Injection takes place. 

निर्माण और निर्भरता इंजेक्शन (जैसे स्प्रिंग बीन्स, @EJB , @Inject @EJB , @Inject , आदि) के बाद आप कार्रवाई करने के लिए @PostConstruct साथ एनोटेट की गई विधि का उपयोग करना चाहिए।

 @PostConstruct public void init() { this.user = dao.getUserByEmail("test@gmail.com"); }