Primavera - frijol alcances

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.

 

2 prototipo, en el momento de la adquisición de grano de cada solicitud, se creará una nueva instancia, no va a crear una instancia cuando la inicialización del contenedor, utilizando la carga lenta en forma de inyección Bean, cuando se utiliza, se creará una instancia de cada instancia del objeto obtenido no es lo mismo.
* Uso:
   < 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); 
    } 
}

 

El resultado:

 

La salida es falsa, probada de usuario y usuario2 no es el mismo objeto.

 

3 solicitud, crea una instancia de cada petición HTTP, sólo la instancia actual de la solicitud HTTP es válida
4 sesiones, crea una instancia de cada petición HTTP, sólo la instancia actual de la sesión HTTP es válida
5 globalSession, global Sesión, para compartir diferentes portlets, portlets parece ser similar a los componentes Web de servlets

Supongo que te gusta

Origin www.cnblogs.com/bear7/p/12530699.html
Recomendado
Clasificación