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í
getBeanvrací 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.