როგორ აღწევს Quarkus-ში კონტროლის უკუეფექტს დამოკიდებულებების ინექციით?
sobes.tech AI
პასუხი AI-სგან
Quarkus-ში კონტროლის უკუ გადატანა (IoC) აღწევს დამოკიდებულებების ინექციის (Dependency Injection, DI) მექანიზმის საშუალებით, რომელიც დაფუძნებულია CDI (Contexts and Dependency Injection) სპეციფიკაციაზე. Quarkus ავტომატურად სკანირებს კლასებს და კომპონენტებს, რომლებიც აღნიშნულია ანოტაციებით, როგორიცაა @Inject, @ApplicationScoped, @Singleton და სხვა, და მართავს მათი სიცოცხლის ციკლს.
როდესაც კოდში საჭიროა დამოკიდებულება, 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 ობიექტს თვითონ, არამედ იღებს მას Quarkus კონტეინერიდან DI-ის საშუალებით, რაც IoC-ის გამოხატულებაა.