Sobes.tech
Junior — Middle

Πώς πραγματοποιείται η εισαγωγή εξαρτήσεων στο Bean κατά την ανίχνευσή τους στο πλαίσιο του Spring ή παρόμοιων πλαισίων;

sobes.tech AI

Απάντηση από AI

Στο Spring, η εξάρτηση (Dependency Injection, DI) σε ένα Bean πραγματοποιείται αυτόματα κατά την ανίχνευση των συστατικών στο πλαίσιο της εφαρμογής. Οι κύριοι τρόποι ενέσεων:

  1. Μέσω του κατασκευαστή — οι εξαρτήσεις περνούν μέσω των παραμέτρων του κατασκευαστή. Το Spring, κατά τη δημιουργία του Bean, τοποθετεί τα απαραίτητα αντικείμενα.

  2. Μέσω των setter (Setter Injection) — οι εξαρτήσεις ορίζονται μέσω μεθόδων setter που σημειώνονται με @Autowired.

  3. Μέσω πεδίων (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 και τις σχέσεις τους.