Primavera en frijol alcances tener cinco tipos diferentes de Singleton, prototipo, petición, sesión, globalSession. Cuando la petición, sesión, globalSession estos tres ámbitos sólo se utilizan en el desarrollo web.
Al definir un grano en la primavera, usted tiene la opción de alcance de la declaración de frijol, si no declarado, el ámbito predeterminado es Singleton.
El alcance de la singleton bean 1 define los límites en una única instancia de cada contenedor de primavera COI.
* Uso: no hacer nada, el valor predeterminado es único, pero también se puede añadir una pantalla de alcance, por ejemplo:
< Bean ID = "usuario" clase = "com.zhbit.pojo.User" alcance = "singleton" />
Si todavía no entiende lo que es un producto único, a continuación, dar un ejemplo para ilustrar:
@Test pública vacío test () { contexto Application Context = nueva ClassPathXmlApplicationContext ( "beans2.xml" ); Usuario usuario = context.getBean ( "usuario", el Usuario. Clase ); Usuario2 usuario = context.getBean ( "usuario", el Usuario. Clase ); System.out.println (usuario == usuario2); }
El resultado:
La salida es verdadera. usuario probada y usuario2 es el mismo objeto!
Conclusión: Mientras alcance de la haba es singleton, método getBean () con los mismos parámetros de un bean id, la instancia de ese objeto es el mismo.
< Bean ID = "usuario" clase = "com.kuang.pojo.User" alcance = "prototipo" />
ejemplificado:
@Test pública vacío test () { contexto Application Context = nueva ClassPathXmlApplicationContext ( "beans2.xml" ); Usuario usuario = context.getBean ( "usuario", el Usuario. Clase ); Usuario2 usuario = context.getBean ( "usuario", el Usuario. Clase ); System.out.println (usuario == usuario2); } }
La salida es falsa, probada de usuario y usuario2 no es el mismo objeto.