Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jboss Seam

5,215 views

Published on

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

Published in: Technology
  • Be the first to comment

Jboss Seam

  1. 1. Instituição Federal do Rio Grande do Norte JBOSS SEAM Framework para Java EE5 www.cefetrn.br
  2. 2. JBOSS SEAM Framework para Java EE5 Grupo: Raquel do Carmo, Rafael Freire
  3. 3. Conceitos Necessários JSF, EJB 3.0, ORM, Web 2.0, POJO, RAD
  4. 4. 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
  5. 5. 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
  6. 6. Conteúdo Introdução Objetivo Características do JBOSS SEAM Arquitetura Seam Componentes Contextos Seam Hello World Anotações Tecnologias necessárias
  7. 7. 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.
  8. 8. 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)
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. Arquitetura
  14. 14. 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
  15. 15. Seam Contextos Stateless Event (ou request) Page Conversation Session Business process Application
  16. 16. 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.
  17. 17. 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.
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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)
  22. 22. SEAM HELLO WORLD Crie um modelo de dados Mapeie o modelo para web Manipule eventos da Web
  23. 23. 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; } }
  24. 24. 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>
  25. 25. 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; }
  26. 26. Seam Hello World @Local public interface Manager { public String sayHello (); }
  27. 27. 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 
  28. 28. 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
  29. 29. 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
  30. 30. 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

×