Jboss Seam

30
www.cefetrn.br Instituição Federal do Rio Grande do Norte Framework para Java EE5 JBOSS SEAM

description

Apresentação sobre o JBOSS SEAM, framework para JEE5.

Transcript of Jboss Seam

Page 1: Jboss Seam

www.cefetrn.br

Instituição Federal do Rio Grande do Norte

Framework para Java EE5

JBOSS SEAM

Page 2: Jboss Seam

JBOSS SEAM

Framework para Java EE5

Grupo: Raquel do Carmo,

Rafael Freire

Page 3: Jboss Seam

Conceitos Necessários

JSF, EJB 3.0, ORM, Web 2.0, POJO, RAD

Page 4: Jboss Seam

Conceitos Necessários

JSF – Java Server FacesFramework para “front end” em aplicações web

EJB 3.0 – Enterprise Java Beans Framework para lógica de negócio

ORM – Object Relational Mapping Persistir dados utilizando programação orientada

a objetos

Page 5: Jboss Seam

Conceitos Necessários

Web 2.0Segunda geração da World Wide Web

POJO – Plain Old of Java ObjectsObjetos Java que seguem um desenho simplifica-

do . Exemplo: JavaBean

RAD (Rapid Application Development)Desenvolvimento rápido, criação e reutilização de

componentes, custo reduzido

Page 6: Jboss Seam

Conteúdo

IntroduçãoObjetivoCaracterísticas do JBOSS SEAMArquiteturaSeam ComponentesContextosSeam Hello WorldAnotaçõesTecnologias necessárias

Page 7: Jboss Seam

Introdução

Desenvolvido por Gaving King, criador do HibernateProjeto do JBOSSAinda pouco usadoFramework 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.

Page 8: Jboss Seam

Objetivo

Tornar o desenvolvimento deste tipo de aplicação (Java EE) em um processo visual, com a ajuda do JBOSS, no estilo RAD (Rapid Application Development)

Page 9: Jboss Seam

Características

Integra JSF com EJB 3.0Integra AJAX Bi-injeçãoPOJOs anotados por todo lugarEvita abuso de XMLProjetado para Teste

Page 10: Jboss Seam

Características

Integra JSF com EJB 3.0Através de anotações o Seam integra interface

(visão), lógica de negócio e persistência

Integra AJAX ICEfaces Ajax4JSF

Page 11: Jboss Seam

Características

Bi-injeçãoGerenciamento de dependência bidirecional

POJOs anotados por todo lugarSeam 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

Page 12: Jboss Seam

Características

Evita abuso de XMLNo Seam, muita coisa é feita a partir de

anotações, evitando uso excessivo de XML

Projetado para TesteTestes integrados em aplicações web Java têm

sido difíceis e confusasSeam prevê testabilidade como um recurso

interno do framework

Page 13: Jboss Seam

Arquitetura

Page 14: Jboss Seam

Componentes Contextuais

Contextos Criados e destruídos pelo Seam Em alguns casos, demarcados via anotação.

Componentes São POJOs (JavaBeans ou EJB 3.0) A instância de um componente é associado a um

contexto

Page 15: Jboss Seam

Seam Contextos

Stateless Event (ou request) Page Conversation Session Business process Application

Page 16: Jboss Seam

Contextos

Stateless Não mantém o estado

Event (ou request) Disponibiliza os objetos durante um

evento

Page Associado ao processo de renderização

e carregamento de uma página.

Page 17: Jboss Seam

Contextos

Conversation •Diferencia o Seam de qualquer outro framework;•Permite criar unidades de conversação e registrar nestas unidades todos os objetos e serviços que a aplicação vai necessitar usar quando a mesma estiver sendo executada sobre este contexto.

Page 18: Jboss Seam

Contextos

Session Conceito já visto.

Business process Permite trabalhar com fluxo de trabalho. Garante que o objeto ou serviço registrado

neste contexto vai estar disponível até o fim do fluxo.

Application Tudo que registrarmos neste contexto fica

disponível para todos que acessarem a aplicação

Page 19: Jboss Seam

Seam Componentes

EJB 3.0 stateless session beans EJB 3.0 stateful session beans EJB 3.0 entity beans JavaBeans EJB 3.0 message-driven beans

Page 20: Jboss Seam

Componentes

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

Beans persistens que armazenam dados da aplicação

JavaBeans São usados como stateless ou stateful session

beans

Page 21: Jboss Seam

Componentes

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)

Page 22: Jboss Seam

SEAM HELLO WORLD

Crie um modelo de dadosMapeie o modelo para webManipule eventos da Web

Page 23: Jboss Seam

Seam Hello World

Crie um modelo de dados

@Entity@Name("person")public class Person implements Serializable {

private long id;private String name;@Id @GeneratedValuepublic long getId() { return id;}public void setId(long id) { this.id = id; }public String getName() { return name; }public void setName(String name) {this.name = name;

}}

Page 24: Jboss Seam

Seam Hello World

Mapeie o modelo para Web

<h:form>•Please enter your name:<br/>•<h:inputText value="#{person.name}" size="15"/><br/>•<h:commandButton type="submit" value="Say Hello"•action="#{manager.sayHello}"/>

</h:form>

<h:dataTable value="#{fans}" var="fan">•<h:column>•<h:outputText value="#{fan.name}"/>•</h:column>

</h:dataTable>

Page 25: Jboss Seam

Seam Hello World Manipule eventos da Web

@Stateless @Name("manager") public class ManagerAction implements Manager {

•@In @Out•private Person person;•@Out •private List <Person> fans;•@PersistenceContext•private EntityManager em;•public String sayHello () {•em.persist (person);•person = new Person ();•fans = em.createQuery("select p from Person p")•.getResultList();•return null;

}

Page 26: Jboss Seam

Seam Hello World

@Local

public interface Manager {

public String sayHello ();

}

Page 27: Jboss Seam

Anotações

@Name Informa o nome do componente

@Scope Informa o contexto do componente

@ In Marca o atributo como injetável

@Out Marca o atributo como ejetável

@Logger Injetar instância do componente Log

Page 28: Jboss Seam

Configure o Ambiente

ANT instalado e $ANT_HOME definida$JAVA_HOME definidaJboss AS instalado com perfil EJB 3.0API Jboss Seam descompactadaConfiguração do Eclipse para referenciar a

API do SeamPostgreSQL instalado e funcionando

Page 29: Jboss Seam

Conclusão

Base para o padrão web beans( padrão de frameworks daweb 2.0) JSR 299 Integração de tecnologias padrão de mercado como EJB3,JSF, jBPM Contexto web e da aplicação( EJB ) integrados Uso constante de anotações para configuração dasaplicações Aprendizagem fácil por já usar frameworks conhecidos comoJSF, EJB3, Hibernate e JBPM Necessidade de conhecermos a fundo das tecnologias Java 5JEE 5

Page 30: Jboss Seam

Referências

JAVA MAGAZINE – Projetos Jboss – Edição 50, Ano VI. DevMedia Group

WikiPédiaApresentação...http://blog.mgjug.com.br/2006/12/12/jbpm-2006-12-15-ricardo-ferreira/http://www.jboss.com/products/jbpm/overvie

w