Junior — Middle
Ką reiškia apibrėžti sritį „Spring“ programoje, kai kalbama apie singleton ir prototype reikšmes, ir kaip tai veikia jų elgesį?
sobes.tech AI
Atsakymas iš AI
Spring'e, matomumo sritis (scope) apibrėžia, kiek laiko ir kaip matomas yra bean pavyzdys.
-
singleton — tai numatytasis sritis. Kaskart, kai prašoma tokio scope bean, Spring grąžina tą patį pavyzdį viso konteinerio gyvavimo ciklo metu. Tai reiškia, kad bean sukuriamas vieną kartą ir naudojamas pakartotinai.
-
prototype — kiekvieną kartą, kai prašoma, sukuriamas naujas bean pavyzdys. Spring nevaldo šių bean'ų gyvavimo ciklo po jų sukūrimo, todėl kiekvienas
getBeaniškvietimas grąžina naują objektą.
Įtaka elgsenai:
- Singleton bean'ai taupo išteklius ir užtikrina bendrą būseną visiems naudotojams.
- Prototype bean'ai naudingi, kai reikalingas naujas pavyzdys su nepriklausoma būsena kiekvienam naudojimui.
Pavyzdys:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// kiekvienas `getBean` iškvietimas sukurs naują objektą
}
@Component
@Scope("singleton")
public class MySingletonBean {
// vienas objektas visam konteineriui
}
Taigi, scope pasirinkimas įtakoja, kaip ir kada kuriami objektai bei kiek ilgai jie gyvena programoje.