Junior — Middle
Co oznacza określenie zakresu dla beanów z wartościami singleton i prototype w Spring, i jak to wpływa na ich zachowanie?
sobes.tech AI
Odpowiedź od AI
W Springu zakres widoczności (scope) beana określa czas życia i widoczność instancji beana.
-
singleton — jest to domyślny zakres. Za każdym razem, gdy żądany jest bean z tym scope'em, Spring zwraca tę samą instancję przez cały cykl życia kontenera. Oznacza to, że bean jest tworzony raz i używany wielokrotnie.
-
prototype — przy każdym żądaniu tworzona jest nowa instancja beana. Spring nie zarządza cyklem życia tych beanów po ich utworzeniu, więc każde wywołanie
getBeanzwraca nowy obiekt.
Wpływ na zachowanie:
- Beany singleton oszczędzają zasoby i zapewniają stan wspólny dla wszystkich użytkowników.
- Beany prototype są przydatne, gdy potrzebna jest nowa instancja z niezależnym stanem dla każdego użycia.
Przykład:
@Component
@Scope("prototype")
public class MyPrototypeBean {
// każde wywołanie getBean utworzy nowy obiekt
}
@Component
@Scope("singleton")
public class MySingletonBean {
// jeden obiekt na cały kontener
}
W związku z tym wybór scope wpływa na to, jak i kiedy tworzone są obiekty oraz jak długo żyją w aplikacji.