Comment faire pour remplacer le Printemps de service de haricots par nom, à l'aide d'annotations seulement

Donné que j'ai un Ressort de haricots configuré comme

@Service("myService")
public class DefaultService extends MyService {
}

et d'une classe à l'aide de ce bean

public class Consumer {
    @Autowired
    @Qualifier("myService")
    private MyService service;
    ...
}

Maintenant, je veux que mon projet, qui comprend les précédentes classes, d'avoir Consumer une autre mise en œuvre de MyService être injecté. Donc je voudrais remplacer la fève myService

@Service("myService")
public class SpecializedService implements MyService {
}

résultant dans Consumer portant maintenant une instance de SpecializedService au lieu de DefaultService. Par définition, je ne peut pas avoir deux haricots avec le même nom dans le Printemps conteneur. Comment puis-je dire de printemps, que la définition de ce nouveau service doit remplacer l'ancienne? Je ne veux pas modifier le Consumer classe.

OriginalL'auteur Lars Blumberg | 2011-04-07