@Qualifier
anotasyonu, Spring Framework'de bağımlılık enjeksiyonunu (dependency injection) özelleştirmek için kullanılır. Spring, bir sınıfın bağımlılıklarını otomatik olarak enjekte etmek için @Autowired
anotasyonunu kullanır. Ancak, aynı türden birden fazla bean (nesne) varsa, Spring hangi bean'in enjekte edileceğini bilemez ve bu durumda @Qualifier
kullanılır. @Qualifier
, hangi bean'in enjekte edileceğini belirlemek için kullanılır.
@Qualifier Kullanımı
- Tanımlama: İlk olarak, birden fazla bean oluşturulmalıdır. Her biri farklı bir isimle tanımlanır.
@Configuration
public class AppConfig {
@Bean
public Vehicle car() {
return new Car();
}
@Bean
public Vehicle bike() {
return new Bike();
}
}
-
Enjeksiyon: Daha sonra,
@Autowired
ile birlikte@Qualifier
kullanarak belirli bir bean'i enjekte edebilirsiniz.
public class VehicleService {
private final Vehicle vehicle;
@Autowired
public VehicleService(@Qualifier("car") Vehicle vehicle) {
this.vehicle = vehicle;
}
public void service() {
vehicle.drive();
}
}
Bu örnekte, VehicleService
sınıfı içinde car
bean'i enjekte edilir. Eğer @Qualifier
kullanılmazsa ve birden fazla Vehicle
türünde bean varsa, Spring bir çakışma hatası verir.
@Qualifier'ın Avantajları
- Netlik: Hangi bean'in enjekte edileceği açıkça belirtilir.
- Çakışma Önleme: Aynı türden birden fazla bean olduğunda, çakışmaları önler.
- Kontrol: Geliştiriciye daha fazla kontrol sağlar ve hangi bean'in kullanıldığını belirtmek için esneklik sunar.
Özet
@Qualifier
anotasyonu, Spring'de bağımlılık enjeksiyonunu özelleştirmek ve belirli bean'leri seçmek için kullanılır. @Autowired
anotasyonu ile birlikte kullanıldığında, aynı türden birden fazla bean olduğunda hangi bean'in enjekte edileceğini açıkça belirler. Bu, çakışmaları önler ve kodun daha okunabilir ve bakımı daha kolay olmasını sağlar.
Top comments (0)