Spring Dersleri – Qualifier Anotasyonu Nedir? Kullanımı

Spring Core

Spring Framework Dersleri‘ne devam ediyoruz.

Bu yazıda Spring’i anotasyonlarla yönetebilmek işlemlerini inlceliyoruz. Qualifier kullanımına bakacağız.

Qualifier’ı açıklamadan önce Autowired anotasyonun kısaca bahsedeyim (bknz: Autowired Kullanımı) zaten işlediğimiz konu olan Autowired bir bean yönetimidir. Bu yönetim içerisinden değerleri ile birlikte enjekte edilmektedir. Eğer biz beanimize birden fazla değer atama yaparsak yani spring konfigürasyon dosyasında birden fazla bean alanlarına tanımlama yaparsak Spring bu tanımlamalarının hangisinin kullanılacağına ” @Qualifier ” anotasyonu kullanılarak çözülmektedir.

Örneğimizde bir Kisi Beani yapacağız ve Spring sayesinde bu beane iki farklı tanımlama yapacağız. Bu tanımlama sonrasında Spring’e hangisi değerin kullanılacağını söyleyeceğiz.

public class Kisi{
   private Integer yas;
   private String ad;

   public void setYas(Integer yas) {
      this.yas = yas;
   }
   public Integer getAge() {
      return age;
   }
   public void setAd(String ad) {
      this.ad = ad;
   }
   public String getAd() {
      return ad;
   }
}

Beanimizi oluşturduk. Şimdi kişi bilgileirini tanımlamak için Spring konfigürasyon dosyasına değerlerimizi atayalım.

<?xml version = "1.0" encoding = "UTF-8"?>

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context = "http://www.springframework.org/schema/context"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <context:annotation-config/>

   <bean id = "kisibilgileri" class = "com.burakkutbay.kisiBilgileri"></bean>

   <bean id = "kisi1" class = "com.burakkutbay.Kisi">
      <property name = "ad" value = "Ali" />
      <property name = "yas" value = "22"/>
   </bean>

   <bean id = "kisi2" class = "com.burakkutbay.Kisi">
      <property name = "ad" value = "Veli" />
      <property name = "yas" value = "23"/>
   </bean>

</beans>

Kisi beanine değerlerimizi tanımladık.  Bu tanımlamalarının idleri “kisi1” ve “kisi2” oldu.

public class KisiBilgileri {
   
   @Autowired
   @Qualifier("kisi1")
   private Kisi kisi;

   public KisiBilgileri(){
   }
   
   public void kisiBilgiYaz(){
      System.out.println("Kisi Adı : " + kisi.getAd());
      System.out.println("Kisi Yaşı: " + kisi.getYas());
   }

}

Kisi bilgilerini Autowired ederek @Qualifier ile ” kisi1 ” adlı degeri set edilmesini sağlamaktayız.

Şimdi main classımızı yazalım.

public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("springcontext.xml");

      KisiBilgileri kb = (KisiBilgileri) context.getBean("kisibilgileri");
      kb.kisiBilgiYaz();
      
   }
}

Çıktı:

Kişi Adı: Ali
Kişi Yaşı: 22

 

Önceki Ders: Required Anotasyonu Nedir? Kullanımı Spring Dersleri Sonraki Ders: FactoryBean Nedir? Kullanımı

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: