Spring Boot’da @Primary Annotasyonu

Spring Framework, @Autowired annotasyonuyla bağımlılıkları otomatik enjekte ederken bazen hangi bean’in enjekte edileceğine karar vermek zor olabilir. Özellikle aynı türden birden fazla bean olduğunda bu sorun ortaya çıkar. İşte bu tür durumlar için @Primary annotasyonu kullanılır.

@Primary annotasyonu, Spring’in otomatik enjeksiyon sırasında hangi bean’in tercih edileceğini belirtmek için kullanılır. Bir bean üzerine @Primary annotasyonu eklediğinizde, Spring bu bean’i aynı türden diğer bean’lere göre öncelikli olarak kabul eder.

Basit Bir Örnek

Aşağıda, aynı arayüzü uygulayan iki farklı sınıfımız olduğunu varsayalım:

Eğer bir MessageService bağımlılığı enjekte etmek istediğimizde, Spring otomatik olarak @Primary ile işaretlenmiş olan SmsService’i seçer:

@Qualifier ile @Primary Kullanımı

Eğer hem @Primary annotasyonunu hem de @Qualifier annotasyonunu birlikte kullanırsanız, @Qualifier’in belirttiği bean öncelik kazanır:

Yani @Primary annotasyonu, Spring’in otomatik bağımlılık enjeksiyonu sırasında hangi bean’in tercih edileceğini belirtmek için mükemmel bir yol sunar. Ancak, @Qualifier’in belirttiği bir bean varsa, @Primary’in üzerinde önceliği vardır.

Umarım “Spring Boot’da @Primary Annotasyonu” başlıklı yazım sizin için faydalı olmuştur.

Şu yazılar da ilginizi çekebilir.

Spring Boot’ta @Lazy Annotasyonu

Yeni bir yazımda görüşmek üzere.

Happy coding!

Yorum Yazın