Junior — Middle
120
Como fazer a injeção de dependência no Spring para um campo específico de uma interface, se ela tiver duas implementações?
Empresas quando solicitadas
ITFB Group
Resposta da 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 можно явно указать, какую реализацию внедрять, если их несколько.