java - Spring: calling method before injection -


मैं एक साधारण उदाहरण के साथ मेरी समस्या समझाऊंगा:

  सार्वजनिक वर्ग ए () {निजी बी बी; सार्वजनिक ए () {/ * ... * /} सार्वजनिक बी getB () {/ * ... * /} @ स्वामित्व वाली सार्वजनिक शून्य सेट बी (बी बी) {/ * ... * /} सार्वजनिक init (int x , Int y, float rx, float ry) {/ * ... * /}}  

और

 < कोड> सार्वजनिक वर्ग बी () {निजी ए एक; सार्वजनिक बी () {/ * ... * /} सार्वजनिक ए getA () {/ * ... * /} @ स्वामित्व वाली सार्वजनिक शून्य सेट ए (ए ए) {/ * ... * /} सार्वजनिक init (int x , इंटैक्शन से पहले मुझे  init ()  विधि की आवश्यकता है, क्योंकि तुरंत इंजेक्शन के बाद इंजेक्शन से इंजेक्ट किए गए घटक को प्रति सेकंड लूप एफपीएस समय में कहा जाता है, और निश्चित रूप से इसका आरंभ नहीं किया जाता है इसलिए मुझे  NullPointerException  मिलता है। 

मैं सेटर इंजेक्शन का उपयोग करता हूं और < context.getBean ("ए")

क्या कोई तरीका है init () इंजेक्शन से पहले?

मुझे विश्वास है कि आप जो खोज रहे हैं वह है @PostConstruct , जो JSR250 में निर्दिष्ट है, जो स्प्रिंग को चलाने के लिए कहता है विधि के रूप में जल्द ही निर्भरता आपके बीन में इंजेक्ट कर रहे हैं। आप आरंभ कर सकते हैं इंटरफ़ेस भी कार्यान्वित कर सकते हैं। अधिक विवरण और विकल्पों के लिए देखें हालांकि, आपकी परिपत्र निर्भरता चीजों को उलझा रही है। कुछ तरीके हैं, लेकिन दिन के अंत में आप परिपत्र निर्भरता को हटाने के लिए रीसाइजिंग से लगभग हमेशा बेहतर होते हैं।


Comments

Popular posts from this blog

python - Strange behavior using PyQt4's 'pyqtSlot' decorator before another decorator -

c# - UnhandledExceptionMode.ThrowException for AppDomain.UnhandledException -

c# - Process.Kill() returns access denied -