Sobes.tech
Junior — Middle

¿Qué significa la definición del ámbito para los beans con valores singleton y prototype en Spring, y cómo afecta su comportamiento?

sobes.tech AI

Respuesta de la IA

En Spring, el ámbito de visibilidad (scope) de un bean define el tiempo de vida y la visibilidad de la instancia del bean.

  • singleton — es el ámbito por defecto. Cada vez que se solicita un bean con este scope, Spring devuelve la misma instancia durante todo el ciclo de vida del contenedor. Esto significa que el bean se crea una vez y se reutiliza.

  • prototype — en cada solicitud, se crea una nueva instancia del bean. Spring no gestiona el ciclo de vida de estos beans después de su creación, por lo que cada llamada a getBean devuelve un nuevo objeto.

Impacto en el comportamiento:

  • Los beans singleton ahorran recursos y proporcionan un estado compartido para todos los usuarios.
  • Los beans prototype son útiles cuando se necesita una nueva instancia con estado independiente para cada uso.

Ejemplo:

@Component
@Scope("prototype")
public class MyPrototypeBean {
    // cada llamada a getBean creará un nuevo objeto
}

@Component
@Scope("singleton")
public class MySingletonBean {
    // un objeto para todo el contenedor
}

Por lo tanto, la elección del scope afecta cómo y cuándo se crean los objetos y cuánto tiempo viven en la aplicación.