(Imagen : Rembrandt - El rapto de Europa)
Si has hecho aplicaciones J2EE, te habrás dado cuenta que para configurar un componente d ela aplicación lo recurrente es usar un archivo XML Struts (Struts-Config), Spring (Application-Context), Tiles (Tiles-Def.xml), Ibatis (sus sql maps) y el descriptor de despliegue de una aplicación web (web.xml) son archivos XML que si bien nos traen ciertos beneficios, tampoco son una panacea (sobre todo si tienes que mantener varios).
Con J2SE 5.0 se habilitaron las anotaciones en Java, lo que nos permite "anotar" elementos del programa en los archivos de código fuente (*.java). Mediante EJB 3.0 ,estas anotaciones nos permiten configurar en el mismo código fuente los EJB's que estemos desarrollando sin necesidad de recurrir al descriptor de despliegue ( ejb-jar.xml). Las anotaciones nos permiten:
- Definir Web Services
- Definir EJB's (Stateless, Statefull, MessageDriven)
- Invocar métodos del ciclo de vida (PostConstruct, PreDestroy) o a los Interceptores (AOP con sabor a EJB 3.0)
- Inyección de dependencia (la gente que trabaja en Spring sabe de lo que estoy hablando...no?)
- Atributos de transacción y Seguridad
- Metadata Structural (@Stateless, @WebService, @Entity)
- Dependencias del entorno (@EJB, @Resource, @PersistenceContext)
- Métodos del ciclo de vida (@PostConstruct, @TimeOut, @Remove)
- Hay metadata que no s epuede configurar con anotaciones , y la única opción es usar eld escriptr de despliegue: Interceptores por Defecto para EJB's, Entity Beans de EJB 2, etc
- También hay anotaciones que no pueden sobreescribirse con XML . Ej: El tipo de Session Bean (Statetul o Stateless)
- Tener siempre es mente los valores por defecto definidos en la especificación, de modo que ya no usemos ni anotaciones ni xml
- Tipo de demarcación de Transacciones: CMP(Container managed Transaction)
- Atributo de transacción: TX_REQUIRED
- Nombre de la anotación: Derivado de la clase, o el nombre del campo/método
Publicar un comentario