Professional Documents
Culture Documents
2
2
Introducción
Problema de JavaEE5: Nivel de presentación
(Servlets, JSP, JSF) y nivel de persistencia (EJB 3.0,
JTA, JCA and JPA) desarrollados de forma
independiente.
Web Beans (JavaEE6):
Clase de aplicación que contiene lógica de negocio.
Modelo de componentes compatible con ambos
niveles. Un Bean EJB3 puede actuar como un Bean
JSF.
Puede ser invocado desde Java o a través de Unified
EL.
3
Uso
Proporcionar servicios para el entorno Java EE que hacen las
aplicaciones mucho más fáciles de desarrollar.
Ciclo de vida mejorado para componentes con estado, ubicados en
contextos bien definidos.
Un enfoque de seguridad de tipos para inyección de dependencia.
Un mejor enfoque a interceptores vinculantes a componentes, junto con
un nuevo tipo de interceptor, llamado decorador, que es más apropiado
en resolución de problemas de negocios.
5
5
Componentes
De acuerdo con la especificación, un Web Bean comprende
los siguientes elementos:
6
Tipos API, tipos de enlace e inyección de
dependencia
Los Web Beans adquieren referencias a otros Web Beans a
través de la inyección de dependencia. Cualquier atributo
inyectado especifica un "contrato" que debe cumplir el Web
Bean que va a ser inyectado. El contrato comprende:
1. En el método constructor
@Initializer public Checkout(ShoppingCart cart) {...}
3. Directamente en la propiedad:
private @Current ShoppingCart cart;
9
9
Tipos de despliegue
Un tipo de despliegue es una anotación que representa un
escenario de despliegue determinado, por ejemplo,
@Mock, @Staging o @AustralianTaxLaw.
10
Nombres de Web Beans y EL
unificado
Un Web Bean puede tener un nombre, que le permita ser
utilizado en expresiones EL unificadas. Es fácil
especificar el nombre de un Web Bean:
@SessionScoped @Named("cart")
public class ShoppingCart { ... }
11
11
Nombres de Web Beans y EL
unificado
Es aún más fácil dejar el nombre predeterminado por el
administrador de Web Bean:
@SessionScoped @Named
public class ShoppingCart { ... }
.
En este caso, se establece por defecto como nombre del
Web Bean el nombre de clase no calificado, con el primer
carácter cambiado a minúsculas.
12
12
Tipos de interceptor de enlace
Web Beans proporciona un nuevo método para enlazar
interceptores de enlace a beans EJB y otras Web Beans.
Es posible especificar directamente la clase de interceptor
a través de la anotación @Interceptors:
@SessionScoped
@Interceptors(TransactionInterceptor.class)
public class ShoppingCart { ... }
@SessionScoped @Transactional
public class ShoppingCart { ... }
13
13
Conclusiones
Web Beans proporciona las bases para la integración con
futuras especificaciones Java EE o para que frameworks no
estándar puedan integrarse con Web Beans, beneficiarse de
sus servicios e interactuar con otra clase de Web Bean.
Web Beans fue influenciado por un número de frameworks
de Java ya existentes, incluyendo Seam, Guice y Spring. Sin
embargo, Web Beans tiene su propio carácter, muy distinto:
más seguridad de tipos que Seam, con más estados y menos
centrado en XML que Spring, con mayor capacidad para
aplicaciones enterprise que Guice.
Lo más importante: Web Beans es un estándar JCP que se
integra de manera limpia con Java EE, y con cualquier
entorno Java SE donde EJB Lite embebible esté disponible
14
Referencias
[1] Gavin King “Introduction to Web Beans”. The new
Java standard for dependency injection and contextual
state management: http://
docs.jboss.org/webbeans/reference/1.0/en-US/pdf/guide.pd
f
[2] Comenzando a escribir WebBeans:
http://
docs.jboss.org/webbeans/reference/current/es-ES/html/intr
o.html
[3] New features in Java EE 6: http://
www.javabeat.net/articles/99-new-features-in-java-ee-60-1
.html
[4] JRS-299 Specification
15
GRACIAS POR SU
ATENCIÓN
16