Πώς πραγματοποιείται η εισαγωγή εξαρτήσεων στο Bean κατά την ανίχνευσή τους στο πλαίσιο του Spring ή παρόμοιων πλαισίων;
sobes.tech AI
Απάντηση από AI
Στο Spring, η εξάρτηση (Dependency Injection, DI) σε ένα Bean πραγματοποιείται αυτόματα κατά την ανίχνευση των συστατικών στο πλαίσιο της εφαρμογής. Οι κύριοι τρόποι ενέσεων:
-
Μέσω του κατασκευαστή — οι εξαρτήσεις περνούν μέσω των παραμέτρων του κατασκευαστή. Το Spring, κατά τη δημιουργία του Bean, τοποθετεί τα απαραίτητα αντικείμενα.
-
Μέσω των setter (Setter Injection) — οι εξαρτήσεις ορίζονται μέσω μεθόδων setter που σημειώνονται με
@Autowired. -
Μέσω πεδίων (Field Injection) — τα πεδία της κλάσης σημειώνονται με
@Autowired, και το Spring τοποθετεί απευθείας τα απαραίτητα αντικείμενα.
Παράδειγμα ενέσεων μέσω κατασκευαστή:
@Component
public class Service {
private final Repository repository;
@Autowired
public Service(Repository repository) {
this.repository = repository;
}
}
Κατά την εκκίνηση, το Spring σαρώσει τις κλάσεις με τις σημειώσεις @Component, @Service, @Repository και δημιουργεί τα αντίστοιχα στιγμιότυπα, επιλύοντας αυτόματα τις εξαρτήσεις κατά τύπο από το πλαίσιο. Αν υπάρχουν πολλοί υποψήφιοι, μπορεί να χρησιμοποιηθεί το @Qualifier για διευκρίνιση.
Έτσι, η ενέσηξη εξαρτήσεων πραγματοποιείται χάρη στο κοντέινερ Spring, το οποίο διαχειρίζεται τον κύκλο ζωής των Bean και τις σχέσεις τους.