@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परिभाषित है)।