Bean Scopes
Dentro de una aplicacion de Spring existen multiples scopes para los beans que seran manejados de forma autonoma por el contenedor IoC. El Scope de un Bean se refiere al comportamiento que este tendra respecto a su creacion, duracion y destruccion. Cada Scope especifico unicamente varia estas tres propiedades.
# Scopes
Hay seis scopes principales disponibles
- Singleton. Es el Scope por defecto, eficiente, crea un unico objeto para toda la aplicacion que todos pueden utilizar.
- Prototype. Es un Scope alternativo que viene por defecto, crea objetos para cada componente que use este bean en especifico
- Request. Es un Scope unicamente disponible en aplicaciones de Spring Web. Crea un objeto por cada request que se haga a la aplicacion
- Session. Es un Scope unicamente disponible en aplicaciones de Spring Web. Crea un objeto por cada sesion que se cree en la aplicacion. En aplicaciones stateless no es muy util.
- WebSocket. Se crea un objeto por cada sesion de Sockets que se mantiene unicamente vivo mientras esta dure.
# Cambiar Scope de un Bean
Para cambiar el scope de un Bean podemos utilizar la anotacion @Scope dentro de cualquier definicion de un Bean tradicional.
| |
Aparte de un simple String podemos utilizar las constantes definidas en ConfigurableBeanFactory.
| |