@Autowired
एनोटेशन को स्प्रिंग फ्रेमवर्क में परिभाषित किया गया है।
@Inject
एनोटेशन एक मानक एनोटेशन है, जो मानक "जावा के लिए निर्भरता इंजेक्शन" (JSR-330) में परिभाषित किया गया है । स्प्रिंग (संस्करण 3.0 के बाद से) निर्भरता इंजेक्शन के सामान्यीकृत मॉडल का समर्थन करता है जिसे मानक JSR-330 में परिभाषित किया गया है। ( Google Guice चौखटे और Picocontainer चौखटे भी इस मॉडल का समर्थन करते हैं)।
के साथ इंटरफेस @Inject
के कार्यान्वयन के संदर्भ को इंजेक्ट किया जा सकता Provider
है, जो आस्थगित संदर्भों को इंजेक्ट करने की अनुमति देता है।
एनोटेशन @Inject
और @Autowired
- लगभग पूर्ण सादृश्य है। @Autowired
एनोटेशन के साथ-साथ एनोटेशन का @Inject
उपयोग स्वचालित बाध्यकारी गुणों, विधियों और निर्माणकर्ताओं के लिए किया जा सकता है।
@Autowired
एनोटेशन के विपरीत , @Inject
एनोटेशन की कोई required
विशेषता नहीं है। इसलिए, अगर निर्भरता नहीं मिलेगी - एक अपवाद फेंक दिया जाएगा।
बाध्यकारी गुणों के स्पष्टीकरण में भी अंतर हैं। यदि इंजेक्शन के लिए घटकों की पसंद में अस्पष्टता है, तो @Named
क्वालीफायर को जोड़ा जाना चाहिए। @Autowired
एनोटेशन के लिए एक समान स्थिति में @Qualifier
क्वालीफायर जोड़ा जाएगा (JSR-330 यह परिभाषित करता है कि यह @Qualifier
एनोटेशन है और इसके माध्यम से क्वालिफायर एनोटेशन @Named
परिभाषित है)।