La diferencia entre los frijoles singleton de primavera y los patrones singleton es que están asociados con diferentes entornos. Los patrones de singleton se refieren a una sola instancia en un proceso JVM, mientras que Spring Singleton se refiere a una sola instancia en un contenedor Spring Bean (ApplicationContext).
Primero, mira el patrón Singleton. En un proceso JVM (teóricamente, un programa Java en ejecución debe tener su propio JVM independiente) solo hay una instancia, por lo que no importa dónde se obtenga la instancia en el programa, el mismo objeto siempre se devuelve. Tomar el tiempo de ejecución incorporado en Java como ejemplo (la enumeración ahora es la mejor práctica del patrón Singleton), sin importar dónde se obtenga el tiempo y dónde se obtiene, el siguiente juicio siempre es cierto:
// Basado en el modo lento // Siempre hay solo una instancia en una instancia JVM Runtime.getRuntime () == Runtime.getRuntime ()
En contraste, los frijoles singleton de Spring están estrechamente relacionados con sus contenedores (ApplicationContext). Por lo tanto, en un proceso JVM, si hay múltiples contenedores de resorte, incluso un Singleton Bean definitivamente creará múltiples instancias. El ejemplo del código es el siguiente:
// El primer contenedor Spring Bean ApplicationContext context_1 = new FilesystemXMLApPlicationContext ("classpath: /ApplicationContext.xml"); Persona yiifaa_1 = context_1.getBean ("yiifaa", persona.class); // El segundo contenedor Spring Bean ApplicationContext_2 = new FilesystemXMLApPlicationContext ("classpath: /ApplicationContext.xml"); Persona yiifaa_2 = context_2.getbean ("yiifaa", persona.class); // Esto definitivamente no es igual, porque se crean múltiples instancias System.out.println (yiifaa_1 == yiifaa_2);Aquí está el archivo de configuración de Spring:
<
Resumir
Los frijoles singleton de Spring están estrechamente relacionados con los contenedores de gestión de frijoles de primavera. Cada contenedor creará su propia instancia única, por lo que es muy diferente del patrón Singleton en el patrón de diseño GOF. Sin embargo, en aplicaciones reales, si el ciclo de vida del objeto se entrega por completo a la gestión de primavera (no creada por nueva, reflexión, etc. en otro lugar), el efecto del patrón singleton realmente se puede lograr.
Lo anterior se trata de este artículo que discute la diferencia entre Spring Singleton Bean y Singleton Model. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!