Poco a poco me he estado familiarizando con Spring por un tiempo y creo que tengo una idea razonable de los conceptos; sin embargo, encontré información en otro de mis hilos que puso las cosas patas arriba. me ...Spring Prototype Beans y beneficios de Spring
" ... aunque los métodos de inicialización del ciclo de vida de devolución de llamada se llaman en todos los objetos independientemente de su alcance, en el caso de los prototipos, las devoluciones de llamada de ciclo de vida de destrucción configurado no se llaman. el código de cliente debe limpiar prototipo examinó los objetos costosos y libera recursos costosos que el bean (s) prototipo está reteniendo. Para que el contenedor Spring libere los recursos que contienen los beans de ámbito prototipo, intente usar un postprocesador de bean personalizado, que contiene una referencia a beans que n eed para ser limpiado ".
Esto me hizo pensar que tengo casos de uso real en los que me gustaría usar prototipos de frijoles en los que, por ejemplo, necesito una "nueva" instancia de frijol por solicitud. Sin embargo, por lo que entiendo de este fragmento (de Spring 3 docs), Spring mantiene una referencia a los beans que deben limpiarse (la referencia misma significa que el recolector de basura no eliminará automáticamente el bean). Además, tomo de esto que los recursos mantenidos por el prototipo de frijol deben ser limpiados manualmente.
¿Alguien me puede decir si esto es correcto? Si es así, ¿existe un patrón típico para tratar con esto? Agradecería una respuesta que podría describir la razón arquitectónica por la cual Spring implementa prototipos de frijoles de esta manera.
En caso de que necesite que con ámbito de solicitud Puede solicitar ámbito de usuario;) http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference /html/ch04s04.html –
@Spaeth Lo siento, pude haber sido engañoso ... esta no es una aplicación web, solo estaba tratando de demostrar la necesidad de crear una nueva instancia para manejar "algo" que esté sucediendo – JLove