Учитывая, что у меня есть компонент Spring, настроенный как
@Service("myService")
public class DefaultService extends MyService {
}
и класс, использующий этот компонент
public class Consumer {
@Autowired
@Qualifier("myService")
private MyService service;
...
}
Теперь я хочу, чтобы в моем проекте, включающем предыдущие классы, была внедрена Consumer
еще одна реализация MyService
. Поэтому я хотел бы перезаписать bean-компонент myService
@Service("myService")
public class SpecializedService implements MyService {
}
в результате Consumer
теперь содержит экземпляр SpecializedService
вместо DefaultService
. По определению у меня не может быть двух bean-компонентов с одинаковым именем в контейнере Spring. Как я могу сказать Spring, что определение новой службы должно перезаписать старую? Я не хочу изменять класс Consumer
.