Sobes.tech
Junior — Middle

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.