Jboss Seam

40 %
60 %
Information about Jboss Seam
Technology

Published on January 12, 2009

Author: raquelcarsi

Source: slideshare.net

Description

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

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

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 Faces  Framework 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.0  Segunda geração da World Wide Web POJO – Plain Old of Java Objects  Objetos 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ção Objetivo Características do JBOSS SEAM Arquitetura Seam Componentes Contextos Seam Hello World Anotações Tecnologias necessárias

Introdução  Desenvolvido por Gaving King, criador do Hibernate  Projeto do JBOSS  Ainda pouco usado  Framework 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.0  Integra AJAX  Bi-injeção  POJOs anotados por todo lugar  Evita abuso de XML  Projetado para Teste

Características Integra JSF com EJB 3.0  Atravé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ção  Gerenciamento de dependência bidirecional  POJOs anotados por todo lugar  Seam 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 XML  No Seam, muita coisa é feita a partir de anotações, evitando uso excessivo de XML Projetado para Teste  Testes integrados em aplicações web Java têm sido difíceis e confusas  Seam 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 dados Mapeie o modelo para web Manipule 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 @GeneratedValue public 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 definida Jboss AS instalado com perfil EJB 3.0 API Jboss Seam descompactada Configuração do Eclipse para referenciar a API do Seam PostgreSQL instalado e funcionando

Conclusão  Base para o padrão web beans( padrão de frameworks da web 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 das aplicações  Aprendizagem fácil por já usar frameworks conhecidos como JSF, EJB3, Hibernate e JBPM  Necessidade de conhecermos a fundo das tecnologias Java 5 JEE 5

Referências JAVA MAGAZINE – Projetos Jboss – Edição 50, Ano VI. DevMedia Group WikiPédia Apresentação... http://blog.mgjug.com.br/2006/12/12/jbpm-2006-1 http://www.jboss.com/products/jbpm/overvie w

Add a comment

Related presentations

Related pages

Seam Framework - JBoss Seam

Seam Moving Forward. As many of you may be aware, there have been a number of changes within Seam over the past year. Here is a quick highlight of the ...
Read more

JBoss Seam – Wikipedia

Das Seam-Framework, zwischenzeitlich als JBoss Seam bekannt, ist ursprünglich (bis Version 2) ein von JBoss entwickeltes Webframework für Java EE ...
Read more

JBoss Seam - Wikipedia

This article relies largely or entirely upon a single source. Relevant discussion may be found on the talk page. ... Seam Framework; Developer(s) JBoss, a ...
Read more

JBoss Seam - infoq.com

InfoQ.com is a practitioner-driven community news site focused on facilitating the spread of knowledge and innovation in professional software development.
Read more

Space: Seam | JBoss Developer

User questions and comments about Seam. ... Log in to follow, share, and participate in this community. Not a member?
Read more

JBoss Seam [SE-Wiki]

Setup and create the project. The first thing we need to do is configure seam-gen for your environment: JBoss AS installation directory, Seam project ...
Read more

Chapter 1. Seam Tutorial - JBoss Developer

Seam provides a number of example applications demonstrating how to use the various features of Seam. This tutorial will guide you through a few of those ...
Read more

Get started with JBoss products

Learn how to get started and how to be productive with JBoss products.
Read more

JBoss Application Server - JBoss Community

The JBoss AS community project has been renamed to the WildFly community project, which has a new home at wildfly.org.
Read more

JBoss Developer

Red Hat JBoss Middleware provides tooling and middleware for developing enterprise software. This includes JBoss EAP (for developing Java EE applications ...
Read more