Spring’de @Autowired ,@Inject @Resource ile dependency injection sağlayan yapılar olduğunu biliyorum.
Hatta @Inject java’nın kendisinde olan bir şey yani platform bağımız.İlerde
Ancak @Autowired ile gerekli configuratsyonları spring’e bırakmış oluyoruz,
@Inject için gerekli bean ayarlarını bizim halletmemiz gerekiyor diye hatırlıyorum. Yanılıyor olabilirim.
Böyle bir tablo güzel anlaşılır duruyor.
Burada dependency management ve inject işleminin ne olduğunu bildiğini varsayarak bu tabloyu veriyorum. Detay sorguların varsa konuşabiliriz.
Tipik olarak üçü de aynı işe yarıyor. Autowired spring çatısına ait bir annotation oluyor, diğerleri java’ya ait. Spring hepsini destekliyor.
Bunlara ek olarak benim de yeni fark ettiğim (aydınlandığım) durum var. Autowired yaptığımız sınıf bulunmazsa uygulama daha baştan ayağa kalmıyor. Bunu zaten biliyoruz, bunun sebebi required=true olarak öntanımlı bulunmasıymış. @Inject öntanımlı olarak required=false oluyormuş. Yani eğer bağlayacağı sınıfı bulamazsa null olmasına izin veriyormuş. Autowired sınıfı bulamazsa uygulamayı ayağa kaldırmaz.