जेएक्स-आरएस 2.0 का एक लक्ष्य सीडीआई को पूर्ण करना था और पुराने @Inject
इंजेक्शन के साथ पुराने @Context
को प्रतिस्थापित करना था। लेकिन अगर मैं JSR 339 देखता हूं तो इसका उल्लेख नहीं है। तो वास्तव में सीडीआई एकीकरण क्या है? क्या Google Guice के बजाय सीडीआई के साथ जेएक्स-आरएस का उपयोग करने का कोई फायदा होगा?गुइस के बजाय सीडीआई/वेल्ड के साथ जेएक्स-आरएस 2.0 का उपयोग करने का लाभ?
उत्तर
@Context
अभी भी जेएक्स-आरएस 2.0 में इंजेक्शन करने का आधिकारिक तरीका है। विनिर्देश हालांकि राज्य है कि एक कार्यान्वयन मई @Inject
के उपयोग @Context
के साथ (JAX-आरएस 2.0 EDR 3 की धारा 10.2.5 से) बनाने:
क्रियान्वयन
@Inject
या@Resource
के उपयोग की आवश्यकता नहीं होगी का ट्रिगर इंजेक्शन के लिए जेएक्स-आरएस एनोटेटेड फाइल्स या प्रॉपर्टीज। कार्यान्वयन ऐसे उपयोग का समर्थन कर सकते हैं लेकिन उपयोगकर्ताओं को गैर पोर्टेबिलिटी के बारे में चेतावनी देना चाहिए।
इसलिए यह है कि JAX-RS 2.0 के सभी कार्यान्वयन @Inject
का समर्थन करता है कुछ नहीं है, और असंगति पैदा हो सकता है अगर एक JAX-आरएस 2.0 कार्यान्वयन को बदलना चाहता है।
मैंने थोड़ा सा शोध किया और ऐसा लगता है कि जर्सी 2.0 को कम से कम @Inject
के लिए समर्थन मिला है।
मैं @Inject
उपयोग करने के बजाय @Context
की है कि यह गैर JAX-आरएस संसाधनों के सभी @Inject
के एक एक JAX-आरएस वेब सेवा में होता है के साथ और अधिक सुसंगत है में लाभ लगता है।