Download - TDC 2008 JBoss Seam
Globalcode – Open4Education
JBoss Seam
Vinicius SengerCo-fundador Globalcode
Alberto J Lemos (Dr. Spock)Instrutor Globalcode
Globalcode – Open4Education
> 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
Agenda
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
•Camada de•Apresentação
•Camada de•Negócios
•Camada de•Persistência
Arquitetura típica Java EE 5
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
Camada de
Negócios
Camada de
Persistência•JBoss Seam
Globalcode – Open4Education
Faces / Seam / JPA / EJB
Camada de
Apresentação
Camada de
Negócios
Camada de
Persistência•JBoss Seam
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 faces-
config.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