Jboss Seam
-
Upload
raquelcarsi -
Category
Technology
-
view
7.772 -
download
0
description
Transcript of Jboss Seam
www.cefetrn.br
Instituição Federal do Rio Grande do Norte
Framework para Java EE5
JBOSS SEAM
JBOSS SEAM
Framework para Java EE5
Grupo: Raquel do Carmo,
Rafael Freire
Conceitos Necessários
JSF, EJB 3.0, ORM, Web 2.0, POJO, RAD
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
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
Conteúdo
IntroduçãoObjetivoCaracterísticas do JBOSS SEAMArquiteturaSeam ComponentesContextosSeam Hello WorldAnotaçõesTecnologias necessárias
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.
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)
Características
Integra JSF com EJB 3.0Integra AJAX Bi-injeçãoPOJOs anotados por todo lugarEvita abuso de XMLProjetado para Teste
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
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
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
Arquitetura
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
Seam Contextos
Stateless Event (ou request) Page Conversation Session Business process Application
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.
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.
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
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
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
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)
SEAM HELLO WORLD
Crie um modelo de dadosMapeie o modelo para webManipule eventos da Web
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;
}}
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>
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;
}
Seam Hello World
@Local
public interface Manager {
public String sayHello ();
}
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
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
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
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