example ejemplo dependent beans java dependency-injection cdi jboss-weld named

ejemplo - cdi java



¿Cuál es el alcance predeterminado de un bean CDI con nombre? (1)

El alcance predeterminado es el pseudo-alcance dependiente @Dependent , como se indica en la documentación de soldadura :

CDI presenta el llamado pseudo-alcance dependiente. Este es el ámbito predeterminado para un bean que no declara explícitamente un tipo de ámbito. [...] Una instancia de un bean dependiente nunca se comparte entre diferentes clientes o diferentes puntos de inyección. Es estrictamente un objeto dependiente de algún otro objeto. Se crea una instancia cuando se crea el objeto al que pertenece y se destruye cuando se destruye el objeto al que pertenece.

El javadoc para esta anotación proporciona más información sobre este ámbito:

Los beans declarados con alcance @Dependent se comportan de manera diferente a los beans con otros tipos de alcance incorporados. Cuando se declara que un bean tiene alcance @Dependent:

  • Ninguna instancia inyectada del bean se comparte entre múltiples puntos de inyección.
  • Cualquier instancia del bean inyectado en un objeto que está creando el contenedor está vinculado al ciclo de vida del nuevo
    objeto creado.
  • Cuando se evalúa una expresión EL unificada en una página JSF o JSP que hace referencia al bean por su nombre EL, se crea una instancia de como máximo una instancia del bean. Esta instancia existe para dar servicio a una sola evaluación de la expresión EL. Se reutiliza si el nombre EL de frijol.
    aparece varias veces en la expresión EL, pero nunca se reutiliza cuando la expresión EL se evalúa de nuevo, o cuando otra expresión EL
    es evaluado
  • Cualquier instancia del bean que recibe un método productor, campo productor, método eliminador o invocación del método observador existe para
    servicio que invocación solamente.
  • Cualquier instancia del bean inyectado en los parámetros del método de un método eliminador o método observador existe para dar servicio al método
    Sólo invocación.

¿Hay algún ámbito predeterminado para un bean @Named CDI sin @...Scoped anotaciones de ámbito? No he encontrado ninguna información relevante en la documentación oficial de Weld .

Se puede acceder a un bean @Named a través de JSF sin anotaciones adicionales, por lo que parece probable que exista un alcance implícito.

Gracias