Sobes.tech
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 getBean vrać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.