Od pewnego czasu stopniowo uporałem się ze Springem i sądzę, że mam rozsądne pojęcie o tych koncepcjach, jednak natknąłem się na informacje w innym z moich wątków, które wywróciły do góry nogami me ...Wiosenne prototypy fasoli i korzyści ze sprężyny
”... chociaż metody inicjalizacji cyklu oddzwonienia nazywane są na wszystkich obiektach, niezależnie od zakresu, w przypadku prototypów, skonfigurowany zniszczenie callbacks cyklu życia nie są nazywane. Kod klient musi posprzątać prototype- obiektów o ograniczonym zasięgu i zwalniać drogie zasoby, które utrzymują prototypowe komponenty bean. Aby zmaksymalizować pojemność zasobu przechowywanego przez fasole o rozmiarze prototypowym, spróbuj użyć niestandardowego procesora końcowego, który zawiera odniesienie do fasoli, która trzeba się oczyścić. "
Dało mi to do myślenia, że mam rzeczywiste przypadki użycia, w których chciałbym użyć fasoli prototypowej, na przykład potrzebuję "nowej" instancji komponentu bean na żądanie. Jednak z tego, co rozumiem w tym fragmencie (z dokumentów Spring 3), Spring trzyma odnośnik do fasoli, która musi zostać oczyszczona (sama referencja oznacza, że komponent bean nie zostanie automatycznie wyczyszczony przez garbage collector). Ponadto biorę to z tego, że zasoby posiadane przez prototypową fasolę muszą być ręcznie oczyszczone.
Czy ktoś może mi powiedzieć, czy to prawda? Jeśli tak, to czy istnieje typowy wzór używany do radzenia sobie z tym? Byłbym wdzięczny za odpowiedź, która mogłaby opisać architektoniczny powód, dla którego Spring implementuje prototypowe fasole w ten sposób.
W przypadku trzeba to zakrojony na żądanie możesz zakres żądania użytkownika;) http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference /html/ch04s04.html –
@Spaeth Przepraszam, że mogłem wprowadzać w błąd ... to nie jest aplikacja internetowa, próbowałem tylko zademonstrować potrzebę utworzenia nowej instancji, aby obsłużyć "coś", co się stało – JLove