JBoss Seam, Framework para Java EE5
Desenvolvido por Gaving King, criador do Hibernate, JBOSS Seam é um projeto da companhia JBOSS. É um framework para desenvolvimento de aplicações JEE, baseado na integração de JSF e EJB3, rico em recursos AJAX. Enquanto que a maioria dos frameworks é focado em uma camada específica, Seam integra todas as camadas.
O objetivo do Seam é tornar o desenvolvimento deste tipo de aplicação (Java EE) em um processo visual, no estilo RAD (Rapid Application Development).
A seguir uma lista de suas características:
- Integra JSF com EJB 3.0: Através de anotações o Seam integra interface (visão), lógica de negócio e persistência.
- Integra AJAX: ICEfaces e Ajax4JSF.
- Bi-injeção: Gerenciamento de dependência bidirecional.
- POJOs anotados por todo lugar: Seam estende as anotações fornecidas pelo EJB 3.0 com um conjunto de anotações para declarativa de gerenciamento de estado e declarativa de demarcação de contexto.
- Evita abuso de XML: No Seam, muita coisa é feita a partir de anotações, evitando uso excessivo de XML.
- Projetado para Teste: Testes integrados em aplicações web Java têm sido difíceis e confusas. O Seam prevê testabilidade como um recurso interno do framework.
O Seam é composto de componentes textuais. Esses componenstes são POJOS (JavaBeans ou EJB 3.0), cuja instância é associada a um contexto. Os contextos são criados e destruídos pelo Seam. Em alguns casos, são demarcados via anotação. Exemplos de contextos: Stateless, Conversation, Session e Page.
Os Componentes são dividos em 5 categorias:
- EJB 3.0 stateless session beans: Não mantêm estado. A cada nova invocação, um novo estado é criado.
- EJB 3.0 stateful session beans: Mantém estado por múltiplas invocações.
- EJB 3.0 entity beans: Armazenam dados da aplicação.
- JavaBeans: São usados como stateless ou stateful session beans.
- EJB 3.0 message-driven beans: Ao invés de serem invocados por variáveis de contexto, escutam mensagens enviadas para uma Fila JMS(Java Message Service).
A aprendizagem desse framework é rápido e fácil por já usar frameworks conhecidos como JSF, EJB3, Hibernate e JBPM. Entranto, para trabalhar com Seam, é necessário conhecer a fundo essas tecnologias Java EE5.
PS: Contribuição de Rafael Macêdo.