Cum se realizează efectul Inversion of Control în Quarkus prin injecție de dependențe?
sobes.tech AI
Răspuns de la AI
În Quarkus, efectul de Inversiune a Controlului (IoC) se realizează prin mecanismul de injecție a dependențelor (Dependency Injection, DI), bazat pe specificația CDI (Contexts and Dependency Injection). Quarkus scanează automat clasele și componentele marcate cu adnotări precum @Inject, @ApplicationScoped, @Singleton și altele, și gestionează ciclul lor de viață.
Când în cod este necesară o dependență, Quarkus injectează automat obiectul necesar, eliberând dezvoltatorul de crearea manuală a instanțelor și gestionarea acestora. Acest lucru facilitează înlocuirea implementărilor, simplifică testarea și crește modularitatea aplicației.
Exemplu:
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());
}
}
Aici, Consumer nu creează obiectul Service singur, ci îl primește de la containerul Quarkus prin DI, ceea ce reprezintă manifestarea IoC.