2012-06-13 24 views
6

Samen adıyla 2 tane fasulye içeren ancak farklı paketlerde bulunan bir uygulamam var. İlkbahar başvurum başarısız oluyor, çünkü hangi fasulyenin alınacağına karar veremiyor. Bunun için herhangi bir çözüm var mı? org.springframework.context.annotation.ConflictingBeanDefinitionException: Ek Açıklama belirtilen fasulye adı 'Neden Olduğu2 fasülye aynı fakat farklı paketle, nasıl otomatik telef?

: fasulye anda

istisna düzenlenmiş örnek aşağıya bakın .. belirli arabirimleri uygulamak değil fasulye sınıfı için dataTransferHandler' aynı isim ve sınıf mevcut, uyumlu olmayan fasulye tanımı ile [aaaaa.ws.handler.DataTransferHandler] çakışmaları [bbbbb.ws.handler.DataTransferHandler]

+0

Tek çözümün, onlara kesin isimleriyle başvurmak olduğu anlaşılıyor. – nhahtdh

cevap

12

Fasulyelerinizin farklı isimlerini vermelisiniz - eğer birden fazla fasülyenin adı aynı isimle tanımlanmışsa, daha sonra tanımlanmış olanı daha önce tanımlanmış olanı geçersiz kılar - bu durumda sizin durumunuzda dataTransferHandler ismi ile sadece bir tane tane bulunacaktır. Her iki varolması için

Sen, bu iki ÇEKİRDEK farklı adlar verebilir ve kullanmakta ya doğru birinde enjekte edebilir @AutoWired @Qualifier("dataTransferHandler") VEYA @Resource(name="dataTransferHandler")

Niteliği verebilir
+0

Fasulyelere farklı isimler vererek sınıf adını değiştirmek mi istiyorsunuz? – Marco

+0

Hayır, soyadı adı - eğer açıkça adlandırdıysanız 'veya ek açıklamaları kullanıyorsanız @ @Service (" aName ")'. Bu durumda iki bakla aynı ada sahip olsa da, her iki şekilde de farklı türleri vardır –

+0

Mükemmel !!! Teşekkürler sorunları çözüldü! Yardım için çok teşekkürler! – Marco

0

birincil = "true" Otomatik tanımlamada tercihinize sahip olmak istediğiniz fasulyenin tanımlanması. Ama fasulye isimleri farklı olmalı. Aynı fasülye adı için bir çözüm yoktur.

Otomatik kablolu sınıfı alacağınız çalışma zamanında, birincil gerçek çekirdek otomatik kablolama tercihini alır. Umarım bu size yardımcı olur. Şerefe.

İlgili konular