¿Cuál es la diferencia entre el singleton y el prototipo de Spring?
Alcance singleton: cuando la definición del Bean se establece en el alcance singleton, solo habrá una instancia de Bean en el contenedor Spring IoC y todas las solicitudes al Bean solo se devolverán siempre que el ID coincida con el Definición de Bean. La misma instancia de Bean. Vale la pena enfatizar que el alcance singleton es el alcance predeterminado de Spring.
Alcance del prototipo: un bean con alcance de prototipo crea una nueva instancia del bean cada vez que se solicita el bean (ya sea inyectándolo en otro bean o llamando mediante programación al método getBean() del contenedor). Como regla general, los beans con estado deben usar un alcance de prototipo y los beans sin estado deben usar un alcance singleton. Una cosa a tener en cuenta sobre los beans con ámbito de prototipo es que Spring no es responsable de todo el ciclo de vida del bean. Una vez creado un bean con ámbito de prototipo, la persona que llama es responsable de destruir el objeto y reclamar recursos. En resumen:
Un singleton tiene solo una instancia, que es el patrón singleton.
Un acceso prototipo puede crear una instancia una vez, lo que equivale a nueva.
Su aplicación:
1. Los asuntos que necesitan reciclar recursos importantes (conexiones de bases de datos, etc.) se configuran como singleton. Si se configuran como prototipos, los prototipos deben aplicarse para garantizar. que los recursos se reciclen correctamente.
2. Configurar un bean con estado como singleton causará problemas desconocidos; considere configurarlo como un prototipo.