JBoss Seam

Propaganda
JBoss Seam
Vinicius Senger
Co-fundador Globalcode
Alberto J Lemos (Dr. Spock)
Instrutor Globalcode
Globalcode – Open4Education
Agenda
>
>
>
>
>
>
>
Introdução
Arquitetura típica Java EE 5
O que é JBoss Seam?
Porque escolher o JBoss Seam?
Usando Seam com JSF, EJB e JPA
Demonstração
Perguntas & Respostas
Globalcode – Open4Education
Introdução
> JSF, EJB 3.0 e JPA representam os maiores
progressos na tecnologia Java EE 5:
> JSF: aplicações Web com semântica desktop;
> EJB 3.0: poder da computação distribuída e
transacional com POJO;
> JPA: a forma mais fácil de persistir objetos em banco
de dados;
Globalcode – Open4Education
Introdução
> Apesar de promover o uso de IoC, DI e
anotações, algumas características não estão
disponíveis na tecnologia Java EE 5:
> Templates de tela Web: Facelets;
> Suporte a Ajax: JBoss RichFaces;
> Modelo de integração entre estas tecnologias: JBoss
Seam ou Spring Framework;
> A integração destas tecnologias representa um
modelo de arquitetura a ser projetada durante o
desenvolvimento.
Globalcode – Open4Education
Plataforma Java EE 5
> O JSF permite a definição de Listeners de tela
Web via JavaBeans (Managed Beans);
> No Java EE 5 é possível:
> Definir uma entidade persitente (Entity Bean) via
anotações e POJOs;
> Definir um componente de negócio (Stateless ou
Stateful Session Bean) via anotações e POJOs;
> Integrar os componentes de negócio e as entidades
persistentes via anotações e DI;
> Integrar os Managed Beans com os componentes de
negócio via anotações e DI;
Globalcode – Open4Education
Plataforma Java EE 5
> Contudo, o Java EE ainda exige numa aplicação
Web o controle programático dos contextos
transacionais e persistentes:
> Demarcação programática num Managed Bean ou
delegar para os EJB's;
> Gerenciamento do contexto de persistência numa
sessão Web para evitar erros (Ex.: LazyInitException).
Globalcode – Open4Education
Arquitetura típica Java EE 5
•Camada de
•Apresentação
•Camada de
•Negócios
•Camada de
•Persistência
Globalcode – Open4Education
O que é JBoss Seam?
> Um projeto open source de uso livre para
construir aplicações Web ricas com Java,
integrando Ajax, JSF, JPA, EJB 3.0 num
framework unificado, completo e sofisticado;
> Facilita a integração com baixo acoplamento
das camadas de uma aplicação Web através
de Ioc e DI via anotações;
> Um JSF Managed Bean é substituído
completamente por um Seam Component, que
pode ser um JavaBean ou EJB (stateless ou
statefull);
Globalcode – Open4Education
O que é JBoss Seam?
> Seam pode se integrar com Spring, Hibernate,
Portlets, JPA, iText, EJB;
> Pode ser usando em qualquer servidor de
aplicações Java EE 5 ou Tomcat;
> Promove um modelo de arquitetura
desacoplada com uso intenso de DI.
Globalcode – Open4Education
Melhorando a Arquitetura
O JBoss Seam é um framework que
promove uma arquitetura de integração
destas tecnologias do Java EE numa
aplicação Web ou Enterprise.
Globalcode – Open4Education
Porque escolher Seam?
> Framework para EJB 3: não há distinção entre
JavaBeans e EJB;
> Pode ser usado com J2EE 1.4 ou até mesmo
com o Tomcat;
> Fácil integração com bibliotecas de UI com
suporte a Ajax;
> Abordagem revolucionária no gerenciamento de
sessão;
> Diversos recursos agregados: JBoss Rules,
jBPM, CAPTCHA;
Globalcode – Open4Education
Porque escolher Seam?
> Infra-estrutura adicional com:
> Contextos avançados;
> Fluxos de páginas e workflow;
> Gerenciamento de transações JPA;
> Validação por annotations;
> Segurança com o JBoss Rules;
> Métodos assíncronos com @Asynchronous.
Globalcode – Open4Education
Faces / Seam / JPA / EJB
Camada de
Apresentação
•JBoss Seam
Camada de
Negócios
Camada de
Persistência
Globalcode – Open4Education
Faces / Seam / JPA / EJB
Camada de
Apresentação
•JBoss Seam
Camada de
Negócios
Camada de
Persistência
Globalcode – Open4Education
Aplicação com JBoss Seam
> Um aplicativo JBoss Seam é composto por:
> Um componente JBoss Seam:
> Pode ser um EJB Stateless ou Stateful;
> Pode ser um JavaBean;
> Contém anotações do JBoss Seam
> Página(s) JSP ou XHTML:
> Uso de JSP é opcional;
> XHTML é o recomendado para o futuro.
Globalcode – Open4Education
Aplicação com JBoss Seam
> Um aplicativo JBoss Seam é composto por:
> Arquivo components.xml;
> Configurações principais do Seam
> Arquivo pages.xml:
> Navegação do aplicativo, fora do facesconfig.xml
> Arquivo seam.properties:
> Configuração de marcação
Globalcode – Open4Education
Seam Component (#1/3)
Globalcode – Open4Education
Seam Component (#2/3)
Globalcode – Open4Education
Seam Component (#3/3)
Globalcode – Open4Education
Tela JSF usando JSP
Globalcode – Open4Education
Sobre os contextos do Seam
Globalcode – Open4Education
Sobre a bijeção do Seam
Globalcode – Open4Education
Demonstração
Globalcode – Open4Education
Mais informações
> Globalcode – The Developers Company
http://www.globalcode.com.br/
> JBoss Seam Framework
http://seamframework.org/
> JavaEE at a Glance
http://java.sun.com/javaee/
> jboss.org
http://www.jboss.org/
Globalcode – Open4Education
Perguntas & Respostas
Globalcode – Open4Education
Download