2012-08-15 12 views
19

मेरे पास एक बीन B है जो मुझे स्वयं बनाना है (new B() का उपयोग करके) और जिसमें @Autowire और @PostConstruct एनोटेशन हैं।मैं वसंत के साथ एक बीन मैन्युअल रूप से कैसे कर सकता हूं?

मैं अपने बीन A से इन एनोटेशन को स्प्रिंग प्रक्रिया कैसे बना सकता हूं?

संबंधित प्रश्न:

उत्तर

28

हारून, मुझे विश्वास है कि आपका कोड सही है, लेकिन मैं निम्नलिखित प्रयोग किया है:

B bean = new B(); 
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory(); 
factory.autowireBean(bean); 
factory.initializeBean(bean, "bean"); 

पहली विधि @Autowire खेतों और कार्रवाई करेंगे विधियां (लेकिन क्लासिक गुण नहीं)। दूसरी विधि पोस्ट प्रोसेसिंग (@PostConstruct और किसी भी परिभाषित BeanPostProcessor एस) का आह्वान करेगी।

आवेदन संदर्भ को बीन में प्राप्त किया जा सकता है यदि यह ApplicationContextAware इंटरफ़ेस लागू करता है।

+0

शायद मेरा कोड गलत है। 'processInjection() 'केवल' @ Autowired' फ़ील्ड भर देगा, जबकि आपके कोड को '@ पोस्टकॉन्स्ट्रक्चर' भी संसाधित करना चाहिए (कम से कम जावाडॉक के अनुसार)। : -/ –

+2

क्या यह गतिशील प्रॉक्सी भी बनाता है, यदि कक्षा को उदाहरण के लिए '@ ट्रांजेक्शनल 'एनोटेशन के साथ एनोटेट किया गया है? – jeromerg

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

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