Comment et quand est une @ViewScoped bean détruit en JSF?

Le cycle de vie de la @RequestScoped et @SessionScopedBean géré haricots sont gérées par le conteneur de Servlet lui-même, car ils sont essentiellement stockées en tant qu'attribut de HttpRequest et HttpSession respectivement. Comment faire JSF gérer le cycle de vie de la @ViewScopedBean ? Je sais qu'il est créé lorsque la vue est créée et est utilisable jusqu'à il y a une publication à une autre vue. Mais j'ai trouvé que n'est pas nettoyée immédiatement après nous déplacer à partir de ce point de vue.

Une fois un managed bean action méthode retourne un valide de navigation en cas de résultats, même si c'est pour le même point de vue, la vue étendue de managed bean sera garbaged et recréé. Lire ce balusc.blogspot.co.il/2011/09/communication-in-jsf-20.html et c'est là qu'ils stockés : stackoverflow.com/a/9177769/617373
Eh bien, en réalité, vous n'êtes pas censé être en mesure de prédire gc ou le faire se produire immédiatement êtes-vous? Mais en ce qui concerne la viewscoped les haricots dans la mojarra, voir stackoverflow.com/a/13097208/1530938
la collecte des ordures est asynchrone. lorsque la portée de vue est "détruit", il est vraiment juste "marqué prêt à être nettoyés", tout comme tous les autres objets java. Remarque: le marquage est vraiment un compteur de référence de 0 (c'est à dire marqué "n'est plus utilisé").

OriginalL'auteur Geek | 2013-03-07