@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,
@Autowiredile birlikte@Qualifierkullanarak 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)