Senior
50
Ερώτηση 5. Υπάρχουν δύο υλοποιήσεις της διεπαφής, τι θα συμβεί κατά την εισαγωγή μιας μεταβλητής τύπου διεπαφής σε ένα Spring bean; - Η μεταβλητή θα έχει την πρώτη υλοποίηση - Θα προκύψει σφάλμα κατά τη φάση της μεταγλώττισης - Θα προκύψει σφάλμα κατά τη φάση ανύψωσης του πλαισίου - Εξαρτάται από την έκδοση του Spring
Εταιρείες όπου ρωτήθηκαν
RT Labs
Απάντηση από AI
sobes.tech AI
Если в Spring-контексте есть две реализации одного интерфейса, и вы пытаетесь внедрить зависимость по типу интерфейса без дополнительной квалификации (например, без использования @Qualifier или @Primary), то при старте приложения возникнет ошибка на этапе поднятия контекста. Spring не сможет однозначно определить, какую реализацию использовать, и выбросит исключение NoUniqueBeanDefinitionException.
Пример решения:
@Component
@Primary
public class FirstImplementation implements MyInterface { ... }
@Component
public class SecondImplementation implements MyInterface { ... }
// Тогда при инжекте
@Autowired
private MyInterface myInterface; // будет внедрена FirstImplementation
Или с использованием @Qualifier:
@Autowired
@Qualifier("secondImplementation")
private MyInterface myInterface;
Таким образом, правильный ответ: Возникнет ошибка на этапе поднятия контекста.