Sobes.tech
Junior — Middle

Co znamená definice rozsahu pro beany s hodnotami singleton a prototype ve Springu a jak to ovlivňuje jejich chování?

sobes.tech AI

Odpověď od AI

V Springu určuje rozsah (scope) bean definice dobu života a viditelnost instance beanu.

  • singleton — je výchozí rozsah. Pokaždé, když je požadován bean s tímto scope, Spring vrací stejnou instanci po celý životní cyklus kontejneru. To znamená, že bean je vytvořen jednou a opakovaně používán.

  • prototype — při každém požadavku je vytvořena nová instance beanu. Spring neřídí životní cyklus těchto beanů po jejich vytvoření, takže každý volání getBean vrací nový objekt.

Dopad na chování:

  • Singleton beany šetří zdroje a poskytují sdílený stav pro všechny uživatele.
  • Prototype beany jsou užitečné, když je potřeba nová instance s nezávislým stavem pro každé použití.

Příklad:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // každé volání getBean vytvoří nový objekt
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // jeden objekt pro celý kontejner
}

Volba scope ovlivňuje, jak a kdy jsou objekty vytvářeny a jak dlouho žijí v aplikaci.