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