@Autowired
anotasi didefinisikan dalam kerangka Spring.
@Inject
anotasi adalah anotasi standar, yang didefinisikan dalam standar "Injeksi Ketergantungan untuk Java" (JSR-330) . Pegas (sejak versi 3.0) mendukung model umum injeksi ketergantungan yang didefinisikan dalam JSR-330 standar. ( Kerangka kerja Google Guice dan kerangka kerja Picocontainer juga mendukung model ini).
Dengan @Inject
dapat disuntikkan referensi ke implementasi Provider
antarmuka, yang memungkinkan menyuntikkan referensi yang ditangguhkan.
Anotasi @Inject
dan @Autowired
- adalah analogi yang hampir lengkap. Selain @Autowired
anotasi, @Inject
anotasi dapat digunakan untuk properti, metode, dan konstruktor yang mengikat secara otomatis.
Berbeda dengan @Autowired
anotasi, @Inject
anotasi tidak memiliki required
atribut. Oleh karena itu, jika dependensi tidak akan ditemukan - akan dilemparkan pengecualian.
Ada juga perbedaan dalam klarifikasi sifat pengikatan. Jika ada ambiguitas dalam pemilihan komponen untuk injeksi, @Named
kualifikasi harus ditambahkan. Dalam situasi yang serupa untuk @Autowired
anotasi akan ditambahkan @Qualifier
kualifikasi (JSR-330 mendefinisikan @Qualifier
anotasi itu sendiri dan melalui anotasi kualifikasi @Named
ini ditentukan).