Встречается на собеседованиях • сегодня
Какие знаешь особенности реализации Inversion of Control через Dependency Injection в Quarkus
Quarkus использует CDI (Contexts and Dependency Injection) для IoC/DI, но с оптимизациями под GraalVM.
**Особенности:**
1. **Облегченный CDI** – поддерживает только подмножество CDI (нет EJB, только `@ApplicationScoped`, `@RequestScoped`).
2. **Compile-time DI** – зависимости разрешаются на этапе компиляции (уменьшает runtime-накладные расходы).
3. **`@Inject` не обязателен** – если есть единственный конструктор, Quarkus автоматически внедрит зависимости.
**Пример:**
```java
@ApplicationScoped
public class GreetingService {
public String greet() { return "Hello!"; }
}
@Path("/hello")
public class GreetingResource {
private final GreetingService service;
// Внедрение через конструктор (без @Inject)
public GreetingResource(GreetingService service) {
this.service = service;
}
}
```
**Дополнительно:**
- Для кастомных бинов можно использовать `@Produces`.
- Циклические зависимости нужно явно разрывать через `@Inject Provider`.

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