SeamFramework.orgCommunity Documentation

Parte I. Uso de objetos contextuales

La especificación de Web Beans (JSR-299) define una serie de servicios para el entorno de Java EE que facilitan el desarrollo de aplicaciones. Web Beans entrecruza un ciclo de vida mejorado y un modelo de interacción en tipos de componentes existentes de Java incluyendo los componentes JavaBeans y Enterprise Java Beans. Como complemento para el modelo tradicional de programación Java EE, el servicio de Web Beans proporciona servicios:

Inyección de dependencia, junto con la administración de ciclo de vida contextual, ahorra al usuario de un API desconocido el tener que hacer y contestar las siguientes preguntas:

Un Web Bean especifica únicamente el tipo y la semántica de otros Web Beans de los que depende. No se necesita conocer el ciclo de vida real, la implementación concreta, el modelo de hilos u otros clientes de cualquier Web Bean a la que dependa. Mejor aún, la implementación concreta, el ciclo de vida y el modelo de hilos de un Web Bean al que éste depende pueden variar según el escenario de despliegue, sin afectar a ningún cliente.

Los eventos, los interceptores y los decoradores mejoran el acoplamiento-flexibleinherente en este modelo:

Más importante, Web Beans ofrece todos los servicios en formatypesafe. Web Beans nunca utiliza identificadores de cadena para determinar cómo los se ajustan entre sí objetos de colaboración. Además, aunque XML sigue siendo una opción, muy rara vez se utiliza. En su lugar, Web Beans usa la información de teclado disponible en el modelo de objeto Java junto con un nuevo patrón, llamado anotaciones de enlace, para conectar a Web Beans, las dependencias, los interceptores y decoradores y sus consumidores de evento.

Los servicios Web Beans son generales y se aplican a los siguientes tipos de componentes existentes en el entorno de Java EE.

Web Beans incluso provee los puntos de integración necesarios para que otras clases de componentes definidos por especificaciones de Java EE futuras, hagan uso de los servicios de Web Beans e interactúen con otra clase de Web Bean.

Una gran cantidad de marcos existentes de Java, incluyendo Seam, Guice y Spring, influyeron en Web Beans. No obstante, Web Beans tiene su propio carácter distintivo: más typesafe que Seam, más con estado y menos centrada en XML que Spring, red y aplicación empresarial más capaz que Guice.

Lo más importante es que Web Beans es un JCP estándar que se integra sin problemas con Java EE y con cualquier entorno SE dónde EJB Lite incrustado esté disponible.

Tabla de contenidos

1. Comenzando a escribir Web Beans
1.1. Su primer Web Bean
1.2. ¿Qué es un Web Bean?
1.2.1. Tipos API, tipos de enlace e inyección de dependencia
1.2.2. Tipos de despliegue
1.2.3. Ámbito
1.2.4. Nombres de Web Beans y EL unificado
1.2.5. Tipos de interceptor de enlace
1.3. ¿Qué clase de objetos pueden ser Web Beans?
1.3.1. Web Beans sencillos
1.3.2. Web Beans de empresa
1.3.3. Métodos de productor
1.3.4. endpoints de JMS
2. ejemplo de aplicación de red JSF
3. La implementación de referencia de Web Beans
3.1. El ejemplo numberguess
3.2. Ejemplo de traductor
4. Inyección de dependencia
4.1. Anotaciones de Enlace
4.1.1. Anotaciones de enlace con miembros
4.1.2. Combinaciones de anotaciones de enlace
4.1.3. Anotaciones de enlace y métodos de productor
4.1.4. El tipo de enlace predeterminado
4.2. Tipos de despliegue
4.2.1. Habilitar tipos de despliegue
4.2.2. Prioridad de tipo de despliegue
4.2.3. Ejemplo de tipos de despliegue
4.3. Corregir dependencias insatisfechas
4.4. Los proxy de cliente
4.5. Obtención de un Web Bean por búsqueda programática
4.6. El ciclo de vida de los callbacks, @Resource, @EJB y @PersistenceContext
4.7. El objeto InjectionPoint
5. Ámbitos y contextos
5.1. Tipos de ámbito
5.2. Ámbitos incorporados
5.3. El ámbito de conversación
5.3.1. Demarcación de conversación
5.3.2. Propagación de conversación
5.3.3. Pausa de conversación
5.4. El seudo ámbito dependiente
5.4.1. La anotación @New
6. Métodos de productor
6.1. Ámbito de un método de productor
6.2. Inyección dentro de métodos de productor
6.3. Uso de @New con métodos de productor