@Autowired + @Qualifier gelecekte başka bir DI kullanmak isterseniz @ bahar DI ile çalışacaktır @Kaynak iyi bir seçenektir.
@Qualifier @Nualifier yer tutucuyu desteklemediğinden @Qualifier dinamik fasulye kablolamayı desteklemediğini fark ettiğim diğer bir fark da @Resource çok iyi yapıyor.
Örneğin: bunun gibi birden fazla uygulamaya sahip bir arayüzünüz varsa
interface parent {
}
@Service("actualService")
class ActualService implements parent{
}
@Service("stubbedService")
class SubbedService implements parent{
}
@Autowired & @Qualifier ile aşağıdaki gibi belirli bir çocuk uygulaması ayarlamanız gerekir
@Autowired
@Qualifier("actualService") or
@Qualifier("stubbedService")
Parent object;
@Resource ile yer tutucu sunmazken, yer tutucu koyabilir ve aşağıdaki gibi belirli bir çocuk uygulamasını enjekte etmek için özellik dosyasını kullanabilirsiniz.
@Resource(name="${service.name}")
Parent object;
Burada service.name özellik dosyasında
#service.name=actualService
service.name=stubbedService
Umarım birine yardım eder :)