Sobes.tech
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 getBean vrá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.