Τι σημαίνει ο ορισμός της περιοχής για τα beans με τιμές singleton και prototype στο Spring, και πώς επηρεάζει τη συμπεριφορά τους;
sobes.tech AI
Απάντηση από AI
Στο Spring, η περιοχή ορατότητας (scope) ενός bean ορίζει τον χρόνο ζωής και την ορατότητα του στιγμιότυπου του bean.
-
singleton — είναι η προεπιλεγμένη περιοχή. Κάθε φορά που ζητείται ένα bean με αυτό το scope, το Spring επιστρέφει την ίδια περίπτωση καθ' όλη τη διάρκεια ζωής του κοντέινερ. Αυτό σημαίνει ότι το bean δημιουργείται μία φορά και επαναχρησιμοποιείται.
-
prototype — σε κάθε αίτημα, δημιουργείται ένα νέο στιγμιότυπο του bean. Το Spring δεν διαχειρίζεται τον κύκλο ζωής αυτών των beans μετά τη δημιουργία τους, οπότε κάθε κλήση σε
getBeanεπιστρέφει ένα νέο αντικείμενο.
Επίδραση στη συμπεριφορά:
- Τα singleton beans εξοικονομούν πόρους και παρέχουν μια κοινή κατάσταση για όλους τους χρήστες.
- Τα prototype beans είναι χρήσιμα όταν χρειάζεται ένα νέο στιγμιότυπο με ανεξάρτητη κατάσταση για κάθε χρήση.
Παράδειγμα:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// κάθε κλήση σε getBean θα δημιουργεί ένα νέο αντικείμενο
}
@Component
@Scope("singleton")
public class MySingletonBean {
// ένα αντικείμενο για όλο το κοντέινερ
}
Έτσι, η επιλογή του scope επηρεάζει το πώς και πότε δημιουργούνται τα αντικείμενα και πόσο καιρό ζουν στην εφαρμογή.