Junior — Middle
Čo znamená definícia rozsahu pre beany s hodnotami singleton a prototype v Springu a ako to ovplyvňuje ich správanie?
sobes.tech AI
Odpoveď od AI
V Springu, rozsah viditeľnosti (scope) beana určuje dobu života a viditeľnosť inštancie beana.
-
singleton — je predvolený rozsah. Každýkrát, keď je požadovaný bean s týmto scope, Spring vráti rovnakú inštanciu počas celého životného cyklu kontajnera. To znamená, že bean je vytvorený raz a opakovane používaný.
-
prototype — pri každom požiadavke je vytvorená nová inštancia beana. Spring ne riadi životný cyklus týchto beanov po ich vytvorení, takže každé volanie
getBeanvráti nový objekt.
Dopad na správanie:
- Singleton beany šetria zdroje a poskytujú zdieľaný stav pre všetkých používateľov.
- Prototype beany sú užitočné, keď je potrebná nová inštancia s nezávislým stavom pre každé použitie.
Príklad:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// každé volanie getBean vytvorí nový objekt
}
@Component
@Scope("singleton")
public class MySingletonBean {
// jeden objekt pre celý kontajner
}
Takže voľba scope ovplyvňuje, ako a kedy sú objekty vytvárané a ako dlho žijú v aplikácii.