Esse artigo faz parte da revista Java Magazine edição 58. Clique aqui para ler todos os artigos desta edição

image
Clique aqui para ler essa revista em PDF.imagem_pdf.jpg

JBoss Seam

Simplicidade e produtividade no desenvolvimento de aplicações Web

Aprenda a desenvolver aplicações Web utilizando a integração perfeita entre JSF e EJB 3

Fábio Augusto Falavinha

O JBoss Seam é um framework para desenvolvimento de aplicações Java EE que integra, facilmente, tecnologias como Asynchronous JavaScript and XML (AJAX), JavaServer Faces (JSF), Java Persistence API (JPA), Enterprise Java Beans (EJB 3.0) e Business Process Management (BPM).

O Seam foi desenvolvido para eliminar a complexidade em níveis de arquitetura e API. Oferece aos desenvolvedores total controle sobre a implementação da lógica de negócio sem se preocupar com a exposição das informações e/ou configuração excessiva de arquivos XML, dispondo de anotações para classes Java e componentes bem definidos para a camada de apresentação.

Gavin King, líder do projeto Seam e líder da especificação da JSR 299: Web Beans escreveu a proposta que visa padronizar e simplificar a forma de desenvolvimento sugerida pelo Seam, conforme citado no parágrafo anterior, promovendo assim, uma API para criação de aplicações web de fácil manutenção e ótima produtividade.

Iniciando no JBoss Seam

A principal funcionalidade do framework JBoss Seam é integrar JSF e EJB3 (veja a Figura 1). O Seam permite esta integração através de componentes gerenciados (managed components), sem exceder em lookups na árvore JNDI (acesso a recursos do servidor de aplicação, components EJBs, etc), declaração maçante de componentes JSF (backing beans) via arquivo faces<-config.xml ou controlar a passagem de objetos entre as camadas de apresentação e negócio (utilização em excesso do pattern Value Object).

image
Figura 1. Integração do framework JBoss Seam em uma arquitetura Java EE

Desenvolver uma aplicação utilizando Seam é uma tarefa simples, mas deve seguir os seguintes conceitos:

Data Model: Entidades (Entity) devem representar os objetos de negócio a serem persistidos e utilizados nas regras de negócio. Pode<-se utilizar entidades gerenciadas via JPA ou POJOs (Plain Old Java Objects) mapeados via Hibernate;

User Interface (UI): As páginas JSF exibem a interface gráfica, capturando os dados enviados via formulário e mostrando os resultados. Os campos, na interface gráfica, são mapeados aos objetos de negócio, acessado via JSF EL (Expression Language);

Handle Web Events: A camada de negócio pode ser implementada utilizando EJB 3 session beans ou apenas classes Java anotadas. Esta camada atuará como controller para os eventos disparados pelas páginas JSF.

Desenvolvendo uma Agenda de Contatos

Vamos implementar uma Agenda de Contatos utilizando o framework Seam, obtendo uma aplicação web que contém funcionalidades de inclusão, remoção, alteração e pesquisa dos dados, o famoso CRUD.

Antes de começar a trabalhar, vamos criar o ambiente de desenvolvimento. Neste exemplo vamos usar a IDE NetBeans 6 com a plataforma Java 5 e o servidor de aplicação Glassfish (integrado com o NetBeans). A forma mais fácil de obter e instalar todos esses itens é ir em http://download.netbeans.org/netbeans/6.0/final/ e baixar uma das distribuições que inclui o Glassfish.

Baixe também o framework JBoss Seam 2.0.0.GA (download em http://www.jboss.com/products/seam).

O download do código<-fonte deste exemplo pode ser feito no site da revista.

Criando o Data Model

Vamos desenvolver o modelo de dados que será a base para as regras de negócio a serem implementadas. Para isso criaremos uma classe Contato contendo os seguintes atributos: Nome, Número do Celular, Telefone Comercial, Telefone Residencial, E<-mail e observações (veja a ...

Quer ler esse conteúdo completo? Tenha acesso completo