Junior — Middle
90
Quarkus қосымшаларында тәуелділікті енгізу және басқару инверсиясы қалай жүзеге асырылады, Dependency Injection үлгісі арқылы?
AI-дан жауап
sobes.tech AI
В Quarkus внедрение зависимости (Dependency Injection, DI) и инверсия управления (Inversion of Control, IoC) реализуются с помощью стандартных спецификаций CDI (Contexts and Dependency Injection). Это позволяет автоматически управлять созданием и связыванием компонентов приложения.
Основные моменты:
- Классы, которые должны быть внедрены, аннотируются, например,
@Injectдля полей или конструкторов. - Quarkus автоматически создает и управляет жизненным циклом этих зависимостей.
- Инверсия управления означает, что вместо того, чтобы создавать объекты вручную, вы объявляете зависимости, а контейнер Quarkus предоставляет нужные экземпляры.
Пример:
import javax.inject.Inject;
import javax.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class Service {
public String serve() {
return "Service is working";
}
}
@ApplicationScoped
public class Consumer {
@Inject
Service service;
public void doWork() {
System.out.println(service.serve());
}
}
Здесь Consumer не создает объект Service самостоятельно, а получает его от контейнера через DI. Это упрощает тестирование, модульность и управление зависимостями.