Sobes.tech
Middle

Τι είναι το Spring Scope;

sobes.tech AI

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

Στο Spring, το Scope ορίζει τον κύκλο ζωής και το πεδίο ορατότητας ενός bean. Ελέγχει πόσα αντίγραφα του bean θα δημιουργηθούν και πώς θα είναι προσβάσιμα.

Βασικοί τύποι Scope:

  • singleton: Δημιουργείται ένα μόνο αντίγραφο του bean στο πλαίσιο της εφαρμογής. Αυτό είναι το προεπιλεγμένο Scope.
  • prototype: Δημιουργείται ένα νέο αντίγραφο του bean σε κάθε αίτηση.
  • request: Δημιουργείται ένα αντίγραφο του bean για κάθε HTTP αίτηση. Μόνο σε web εφαρμογές.
  • session: Δημιουργείται ένα αντίγραφο του bean για κάθε HTTP συνεδρία. Μόνο σε web εφαρμογές.
  • application: Δημιουργείται ένα αντίγραφο του bean καθ' όλη τη διάρκεια ζωής του ServletContext. Μόνο σε web εφαρμογές.

Παράδειγμα δήλωσης bean με συγκεκριμένο Scope:

@Component
@Scope("prototype") // Ορίζουμε το scope ως prototype
public class MyPrototypeBean {
    // ...
}

Ή σε XML διαμόρφωση:

<bean id="myPrototypeBeanΑρχή" class="com.example.MyPrototypeBean" scope="prototype"/>

Η επιλογή του κατάλληλου Scope εξαρτάται από τη συμπεριφορά και την κατάσταση που απαιτείται από το bean. Το Singleton είναι κατάλληλο για stateless beans, και το prototype για stateful ή όταν απαιτείται απομόνωση των αντιγράφων. Τα request, session και application χρησιμοποιούνται σε web περιβάλλοντα για τη διαχείριση του κύκλου ζωής των beans σύμφωνα με τα αιτήματα, τις συνεδρίες ή ολόκληρη την web εφαρμογή.