2012-01-25 12 views
6

में स्प्रिंग बीन्स इंजेक्ट करें क्या स्प्रिंग बीन्स को RestEasy @Path क्लास में इंजेक्ट करना संभव है? मैं जर्सी के साथ @ इंजेक्शन पैराम एनोटेशन के साथ ऐसा करने में कामयाब रहा, लेकिन कुछ अन्य कारणों से, मुझे रेस्टएसी पर स्विच करने की ज़रूरत है, और मुझे ऐसा करने का कोई तरीका नहीं दिख रहा है (अच्छा ol 'javax.inject.Inject, लेकिन कुछ नहीं)।RestEasy

संपादित

यह समाधान काम करता है: http://www.mkyong.com/webservices/jax-rs/resteasy-spring-integration-example/

लेकिन यह इंजेक्शन नहीं है .. मैं अभी भी कुछ और भी अधिक सुरुचिपूर्ण पसंद करेंगे।

उत्तर

3

सीधे शब्दों में वसंत के @Component के साथ अपने RestEasy वर्ग पर टिप्पणी और उसके बाद वसंत के @Autowired का उपयोग कर अपने सेम इंजेक्षन। अपने वसंत विन्यास में एनोटेशन-कॉन्फ़िगरेशन और घटक-स्कैन तत्वों को शामिल करना न भूलें।

+1

3.0.4 के साथ प्रयास किया। अंतिम, ResteasyDoc के बाद यह बस काम नहीं करता है। ** SpringBeanAutowiringSupport ** का उपयोग करना एकमात्र तरीका था जिसे मैं इसे काम कर सकता था। – tonio

0

आप एक सामान्य वर्ग (new द्वारा निर्मित) वसंत बीन बनाने के लिए @Configurable एनोटेशन का उपयोग कर सकते हैं। फिर आप सामान्य "स्प्रिंग बीन" जैसे कक्षा/उदाहरण में सबकुछ इंजेक्ट करने के लिए सामान्य वसंत एनोटेशन का उपयोग कर सकते हैं।

लेकिन इसके लिए AspectJ की आवश्यकता है!

@See Spring Reference Chapter 7.8.1 Using AspectJ to dependency inject domain objects with Spring

0

मैं पूरी तरह से पीटर के जवाब से सहमत हूं लेकिन ऐसा करने का एक और तरीका है: आप अपने सभी एक्सपोज़िशन बीन्स (रीस्टेसी या जेएक्स-डब्ल्यूएस, जो वसंत घटकों नहीं हैं) SpringBeanAutowiringSupport का विस्तार करते हैं।

इस तरह आप इन कक्षाओं में @Autowired एनोटेशन द्वारा आसानी से अपनी स्प्रिंग सेवाओं को इंजेक्ट कर सकते हैं।

2

एक ऐसा कामकाजी उदाहरण है जो स्प्रिंग के साथ रेस्टएसी को एकीकृत करता है बस spring-resteasy आज़माएं।

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