Встречается на собеседованиях • сегодня
Как правильно организовать три зависимости внутри сервиса, каждая из которых имеет интерфейс и три реализации
Для организации зависимостей с интерфейсами и реализациями в Spring лучше использовать @Qualifier или @Primary. Вот подход:
- Интерфейс + реализации:
java
public interface PaymentService {
void process();
}
@Service("creditCardPayment")
public class CreditCardPayment implements PaymentService {...}
@Service("paypalPayment")
public class PaypalPayment implements PaymentService {...}
text
2. **Использование через `@Qualifier`**:
```java
@Service
public class OrderService {
private final PaymentService paymentService;
@Autowired
public OrderService(@Qualifier("creditCardPayment") PaymentService paymentService) {
this.paymentService = paymentService;
}
}- Или через
@Primary(если одна реализация основная):
java
@Service
@Primary
public class DefaultPayment implements PaymentService {...}Для более сложных случаев можно использовать фабричный метод с @Configuration и @Bean. Это дает четкое разделение зависимостей и гибкость в выборе реализации.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы