Junior — Middle
113
Comment effectuer l'injection de dépendance dans Spring pour un champ spécifique d'une interface, si elle a deux implémentations?
Entreprises à qui on a demandé
ITFB Group
Réponse de l'IA
sobes.tech IA
В Spring, если у интерфейса есть две реализации, и нужно внедрить зависимость по конкретному полю, можно использовать аннотацию @Qualifier для указания, какую именно реализацию нужно внедрить.
Пример:
public interface Service {
void execute();
}
@Service
@Qualifier("serviceA")
public class ServiceA implements Service {
public void execute() { /* реализация A */ }
}
@Service
@Qualifier("serviceB")
public class ServiceB implements Service {
public void execute() { /* реализация B */ }
}
@Component
public class Client {
private final Service service;
@Autowired
public Client(@Qualifier("serviceA") Service service) {
this.service = service;
}
}
Таким образом, с помощью @Qualifier можно явно указать, какую реализацию внедрять, если их несколько.