Hogyan érhető el az Inversion of Control hatás a Quarkusban a függőséginjektálás segítségével?
sobes.tech MI
Válasz az MI-től
A Quarkusban az Irányítás Fordított Hatásának (IoC) hatását a Dependency Injection (DI) mechanizmus révén érik el, amely a CDI (Contexts and Dependency Injection) specifikációra épül. A Quarkus automatikusan szkenneli azokat az osztályokat és komponenseket, amelyeket olyan annotációkkal jelöltek, mint például @Inject, @ApplicationScoped, @Singleton, és mások, és kezeli azok életciklusát.
Amikor a kódban szükség van egy függőségre, a Quarkus automatikusan injektálja a szükséges objektumot, felszabadítva a fejlesztőt a példányok manuális létrehozásától és kezelésétől. Ez megkönnyíti a megvalósítások cseréjét, egyszerűsíti a tesztelést, és növeli az alkalmazás modularitását.
Példa:
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());
}
}
Itt a Consumer nem hozza létre saját maga a Service objektumot, hanem a Quarkus konténerből kapja DI-n keresztül, ami az IoC megnyilvánulása.