Junior — Middle
Mida tähendab ulatuse määratlus Springis singleton ja prototype väärtustega binade jaoks ning kuidas see mõjutab nende käitumist?
sobes.tech AI
Vastus AI-lt
Springis määrab nähtavuse (scope) valdkonna (domain), kui kaua ja kuidas on nähtav bean eksemplar.
-
singleton — see on vaikimisi valdkond. Iga kord, kui nõutakse sellise scope'iga bean'i, Spring tagastab sama eksemplari kogu konteineri elutsükli jooksul. See tähendab, et bean luuakse üks kord ja kasutatakse uuesti.
-
prototype — iga taotluse korral luuakse uus bean eksemplar. Spring ei halda nende bean'ide elutsüklit pärast nende loomist, seega iga
getBeankõne tagastab uue objekti.
Mõju käitumisele:
- Singleton bean'id säästavad ressursse ja pakuvad kõigile kasutajatele ühise oleku.
- Prototype bean'id on kasulikud, kui iga kasutus jaoks on vaja uut sõltumatut olekuga eksemplari.
Näide:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// iga `getBean` kõne loob uue objekti
}
@Component
@Scope("singleton")
public class MySingletonBean {
// üks objekt kogu konteinerile
}
Seega, scope valik mõjutab seda, kuidas ja millal objektid luuakse ning kui kaua nad rakenduses elavad.