2 Mart 2017 Perşembe

Spring @Autowired Anotasyonu

Giriş
Autowired sadece arayüzler için kullanılır.

@Qualifier
Elimizde şöyle bir xml olsun. ClassA1 sınıfı ClassA arayüzünden kalıtıyor olsun.
<bean id="class1" class="com.abc.ClassA1" />
Autowired bir arayüz ile kullanıldığı için, hangi gerçekleştirimi istediğimizi belirtmek için şöyle yaparız.
@Autowired
@Qualifier("class1")
ClassA classA1;
@Qualifier yoksa
Parametrede kullanılan isim qualifier olarak kullanılır. Elimizde şu kalıtım hiyerarşisi olsun.
interface Country {}
class USA implements Country {}
class UK implements Country ()
XML şöyle olsun
<bean class="USA"/>
<bean id="country" class="UK"/>
<bean id="main" class="Main"/>
Kod şöyle olsun.
class Main {
  private Country country;
  @Autowired
  public void setCountry(Country country) {
    this.country = country;
  }
}
Bu durumda USA veya UK bean'lerinden USA olanı seçilir. Çünkü parametre olan country ile bean ismi eşleşir. Açıklaması şöyle
For a fallback match, the bean name is considered a default qualifier value.

Hiç yorum yok:

Yorum Gönder