Junior — Middle
Šta znači definicija opsega za beanove sa vrednostima singleton i prototype u Springu i kako to utiče na njihovo ponašanje?
sobes.tech АИ
Одговор од АИ
U Spring-u, opseg vidljivosti (scope) beana definiše vreme trajanja i vidljivost instance beana.
-
singleton — ovo je podrazumevani opseg. Svaki put kada se zahteva bean sa ovim scope-om, Spring vraća istu instancu tokom celog životnog ciklusa kontejnera. To znači da se bean kreira jednom i ponovo koristi.
-
prototype — pri svakom zahtevu, kreira se nova instanca beana. Spring ne upravlja životnim ciklusom ovih beana nakon kreiranja, pa svaki poziv
getBeanvraća novi objekat.
Uticaj na ponašanje:
- Singleton beani štede resurse i obezbeđuju zajedničko stanje za sve korisnike.
- Prototype beani su korisni kada je potrebna nova instanca sa nezavisnim stanjem za svaku upotrebu.
Primer:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// svaki poziv na getBean kreira novi objekat
}
@Component
@Scope("singleton")
public class MySingletonBean {
// jedan objekat za ceo kontejner
}
Dakle, izbor scope-a utiče na to kako i kada se objekti kreiraju i koliko dugo žive u aplikaciji.