Πώς επιτυγχάνεται το αποτέλεσμα Αντιστροφής Ελέγχου στο Quarkus μέσω της Ενέσιμης Εξάρτησης;
sobes.tech AI
Απάντηση από AI
Στο Quarkus, το αποτέλεσμα του Inversion of Control (IoC) επιτυγχάνεται μέσω του μηχανισμού εισαγωγής εξαρτήσεων (Dependency Injection, DI), που βασίζεται στην προδιαγραφή CDI (Contexts and Dependency Injection). Το Quarkus σαρώσει αυτόματα τις κλάσεις και τα συστατικά που σημειώνονται με αναφορές όπως @Inject, @ApplicationScoped, @Singleton και άλλα, και διαχειρίζεται τον κύκλο ζωής τους.
Όταν στον κώδικα απαιτείται μια εξάρτηση, το Quarkus εισάγει αυτόματα το απαραίτητο αντικείμενο, ελευθερώνοντας τον προγραμματιστή από τη χειροκίνητη δημιουργία και διαχείριση των αντικειμένων. Αυτό διευκολύνει την αντικατάσταση υλοποιήσεων, απλοποιεί τις δοκιμές και αυξάνει τη modularity της εφαρμογής.
Παράδειγμα:
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.