Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
@Autowired ,@Inject ve @Resource Anatosyanlarının farkları nelerdir?

Açık 1 Cevaplar 127 Gösterim Genel Kavramlar
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.

1 cevap

0
|------------|---------------|---------------|---------------|-----------------------|
|            | Setter/Field  | Constructor   | Applicable to | Matching order        |
|            | injection     | injection     | type          |                       |
|------------|---------------|---------------|---------------|-----------------------|
| @Autowired |       X       |       X       |               | Type, Qualifier, Name |
|------------|---------------|---------------|---------------|-----------------------|
| @Inject    |       X       |       X       |               | Type, Qualifier, Name |
|------------|---------------|---------------|---------------|-----------------------|
| @Resource  |       X       |               |       X       | Name, Type, Qualifier |
|------------|---------------|---------------|---------------|-----------------------|

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.

 

(5.6k puan)