Sobes.tech
Junior — Middle
127

Wie führt man in Spring die Dependency Injection für ein bestimmtes Feld eines Interfaces durch, wenn es zwei Implementierungen gibt?

Unternehmen wurden gefragt
ITFB Group

Antwort von AI

sobes.tech KI

В 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 можно явно указать, какую реализацию внедрять, если их несколько.