2013-11-09 15 views
15

@Autowired kullanarak kurucusuna adıyla bir fasulye enjekte etmek türüne göre fasulye arar. Otomatik kablolu bir notu kullanarak bir kurye adıyla fasulye nasıl enjekte edilir? Aynı türden 2 tane fasulyem var ama bunu fasulye ismine göre başka bir sınıfın kurucusuna enjekte etmem gerekiyor. Nasıl yaparım?@Oturucu tarafından yapılan Kabuk, fasulye türüne göre arar. Nasıl yapıcısı tarafından autowired ek açıklama

XML:

<bean id="A" class="com.Check"/> 
<bean id="B" class="com.Check"/> 

Java: Bunu yaptığınızda

Class C { 

    private Check check; 

    @Autowired 
    public C(Check check){ 
     this.check = check 
    } 

    } 

ben de aynı tip çek 2 fasulye ama sadece bir fasulye orada gerektirdiğini bildiren bir istisna olsun bu türden. id="B" ile fasulyeyi kurucu enjeksiyon yoluyla bu sınıf C'a nasıl enjekte edebilirim? Benim applicationContext.xml yılında

Ben autowire="byType" belirtmiştik. byName Sadece bu sınıfta dinlenmeye ihtiyacım var dinlenmek için ihtiyaç duyduğu her şey sadece AutoTime tarafından otomatik olarak ayarlanmalıdır Sadece

cevap

18

Oluşturucu parametresi için hedef çekirdek kimliğinizle @Qualifier ek açıklaması kullanmalısınız.

<bean id="A" class="com.Check"/> 
<bean id="B" class="com.Check"/> 

Class C { 

    private Check check; 

    @Autowired 
    public C(@Qualifier("A") Check check){ //<-- here you should provide your target bean id 
     this.check = check 
    } 
} 
+0

Hala çalışmıyor. I kullanılan @Autowired \t halka CheckDAO (@Qualifier ("EntityManager") EntityManagerFactory entityManagerFactory) { \t \t \t \t em entityManagerFactory.createEntityManager =(); \t \t} Bu özel durum alma im. org.springframework.beans.factory.BeanCreationException: 'checkDAO' adıyla fasulye oluşturulurken hata oluştu: Kalıcılık bağımlılıklarının enjeksiyonu başarısız oldu; İç içe istisna org.springframework.beans.factory.NoSuchBeanDefinitionException geçerli: tip [javax.persistence.EntityManagerFactory] tanımlanır hiçbir eleme fasulye: beklenen tek fasulye ama 2 – user2972319

+0

Maalesef artık .. Teşekkür çalışır bulundu !!! – user2972319

İlgili konular