Seam Framework Básico Cleverson Sacramento \\ZYCNOTE\Seam\

Slides:



Advertisements
Apresentações semelhantes
Aplicação de exemplo Struts Aplicação de exemplo
Advertisements


Programação em Java Prof. Maurício Braga
Introdução a JSF Marco Antonio.
Session Bean Marco A. S. Reis. Camada de negócio Fazem parte da camada de negócio as classes que contém os métodos que irão gerar a aplicação. A medida.
Prof. João Bosco M. Sobral
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Itamir de Morais Barroca Filho Mario V. Andrade de Melo Neto
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Roteiro Para o Trabalho do Módulo
Prof. Marco Aurelio N. Esteves
Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira.
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Hibernate com JPA Prática
Rodrigo Cristiano Silva
Aula R Prof. Naércio Filho Técnico em Informática
Framework gpnet.
Integração com Banco de Dados
Hibernate: Consultas Francisco do Nascimento
JSP / Servlets Avançado
Banco de Dados de Objetos
Primeira aula de PL/SQL Parte II
Introdução ao JSF Daniel Bruno
Introdução ao Hibernate
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Java para Web com Struts
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Prof. Alexandre Monteiro Recife
Oficina Plone Criação de Formulários
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Criação do Create, Read, List, Update e Delete Desenvolvimento de Aplicações Web PROFA. MSC. CINTIA CARVALHO OLIVEIRA DOUTORANDA EM CIÊNCIA DA COMPUTAÇÃO.
Configuração do Ambiente de programação
Arquitetura das JSP - Aula 2
Entity Beans Marco Antonio Arquiteto de Software Dezembro/2007.
Implementação MVC Pedro Antonino.
Unidade 6 – Formulários HTML Prof.: Henrique Santos
JSP JavaServer Pages Marco Antonio, Arquiteto de Software – TJDF Dezembro/2005.
Aula Prática 4 Monitoria IP/CC (~if669).
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Prof. Renato de Oliveira Bastos
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Projeto de Banco de Dados Prof.Ms.Rodrigo Luiz Comitante Leão.
Ultimos recursos Jobson Ronan
MAKE: UM FRAMEWORK PARA GERAÇÃO DE DADOS PARA TESTES UNITÁRIOS EM JAVA Guilherme Braga Viana BahiaAluno: Orientador:Prof. Joaquim Pedro C. de Oliveira,
ASP.NET Conteúdo Introdução
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
SISTEMA PROCESSUAL DIGITAL
Aglets.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Componentes Avançados JPA - API Prof. Leandro Rubim
XML Namespaces XML Namespaces provê um método para evitar conflito de nomes de elementos.
Sistema Almirante Gabriel Junji Ito Giuliano Diego Barbarra.
Globalcode – Open4Education 1 EJB3 Interceptors Ricardo Limonta.
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Persistência em Software Orientado a Objetos:
Programação para Web I AULA 2 BANCO DE DADOS.
Personal Cred Análise Protótipo Sistema e Funcionalidades.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha Apresentação baseada no material didático elaborado pelo Prof. Pasteur Ottoni de Miranda Junior.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Trabalho Prático de Programação Orientada a Objetos em Java Programação Orientada a Objetos Ludimila Monjardim Casagrande 2011.
ASP.NET Passo a Passo Criando um CRUD Conteúdo do Capítulo 1. Acessar bancos de dados SQL Server 2. Utilizar o GridView 3. Utilizar o DetailView 4. Implementar.
Application Server & EJB3 Wesley Gonçalves da Silva
1 Arquitetura e JSF Gustavo Wagner
Application Server & EJB3 Wesley Gonçalves da Silva
Atividade ASP.NET Portal da Memoria Atividade Desenvolver uma aplicação ASP.NET com funcionalidade similar à existente no site centenário.ifrn.edu.br utilizando.
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
Arquitetura e padrões de software
Transcrição da apresentação:

Seam Framework Básico Cleverson Sacramento \\ZYCNOTE\Seam\

Agenda Ambiente Introdução Componentes Contextuais Mapeamento Objeto-Relacional Seam Application Framework

Objetivo Conhecer o básico do SEAM Overview quase completo Desmistificar o SEAM

Ambiente C:\lab-01 eclipse-3.4 jboss GA jboss-seam SP1 squirrel-sql workspace reference lab01

Ambiente Iniciar  Executar cmd cd \lab \jbo c:\lab-01\jboss-seam SP1>_ seam setup

Ambiente seam-gen Criador automatizado de projetos Seam...

Ambiente seam-gen 01. Enter your Java project workspace 02. Enter your JBoss home directory 03. Enter the project name 04. Do you want to use ICEfaces instead of RichFaces 05. Select a RichFaces skin 06. Is this project deployed as an EAR 07. Enter the Java package name for your session beans 08. Enter the Java package name for your entity beans 09. Enter the Java package name for your test cases 10. What kind of database are you using? 11. Enter the Hibernate dialect for your database

seam-gen 12. Enter the filesystem path to the JDBC driver jar 13. Enter JDBC driver class for your database 14. Enter the JDBC URL for your database 15. Enter database username 16. Enter database password 17. Enter the database schema name 18. Enter the database catalog name 19. Are you working with tables that already exist in the database? 20. Do you want to drop and recreate the database tables and data in import.sql each time you deploy? Ambiente

seam-gen BUILD SUCCESSFUL Total time: X minutes Y second c:\lab-01\jboss-seam SP1>_ seam create-project

Introdução Conceito Tradução de seam: costura Costura diversas tecnologias: JSP + JSF + RichFaces + Facelets + EJB + JPA + Hibernate + WS +...

Componentes Contextuais Componentes Componentes Seam Classes do Seam Classes suas Tipos primitivos do Seam Tipos primitivos seus

Componentes Componentes Seam Componentes Contextuais seam (“a”) (“d”) “a”“b”“d”

Componentes Contextuais Componentes O Seam invoca o construtor, você não! seam aplicação AB new seam aplicação AB new X X “b”

Componentes Ciclo de vida Componentes Contextuais alguém invoca o componente “a” se o componente “a” não existir então se existir fábrica para “a” então invoca a fábrica e recebe uma instância de “a” senão invoca o construtor padrão da classe de “a” fim se guarda a instância de “a” criada injeta na instância tudo que for necessário executa o método anotado caso exista fim se entrega a instância do componente “a” para quem pediu

Componentes rotula uma classe como um define uma fábrica para um define o método do componente que será invocado imediatamente após a sua indica que o componente será criado assim que for chamado, sem a necessidade de tornar explícito com o injeta na classe um ejeta para o Seam um novo componente Componentes Contextuais

Componentes Prática 1.Criar uma classe UsuarioAction e rotulá-la como um componente; 2.Criar uma classe UsuarioService e rotulá-la como um componente; 3.Criar o método boolean autenticar(String login, String senha) em UsuarioService; 4.Criar um método String autenticar() em UsuarioAction, que invoque o Service passando valores fixos; 5.Invoque o método autenticar() do componente da classe UsuarioAction; ex: no home.xhtml faça assim: Componentes Contextuais

Contexto Stateless context Event (or request) context Page context Conversation context Session context Business process context Application context

Componentes Contextuais Contexto Stateless: não guarda estado Stateful: guarda estado. Todos os outros contextos guardam contexto, mas por quanto tempo?

Contexto inicia um novo contexto de conversação flushMode = finaliza o contexto de conversação TAG flush-mode="MANUAL“ Componentes Contextuais

Contexto Finalizando conversações: Marks a method as ending a conversation, if the method returns a non-null outcome without throwing an exception. (…) A null outcome never ends the conversation. If the method is of type void, the conversation always ends. Componentes Contextuais

Contexto Finalizando public String test1() { return “” public void test2() {}; public void test3() public String test4() { throw new RuntimeException(“pam!”); return “oi”; }; Componentes Contextuais

Contexto Prática 1.Crie duas páginas: passo1.xhtml e passo2.xhtml; 2.Crie as seguintes propriedades na classe UsuarioAction: 1.String login; String senha; 2.String ; 3.Date nascimento; 4.boolean ativo; 3.Em passo1.xhtml crie dois campos do tipo texto para guardar informações de nome e . Crie um botão próximo que faz link com passo2.xhtml; 4.Em passo2.xhtml crie dois campos para guardar as informações de nascimento e ativo. Crie um botão anterior que faz link com passo1.xhtml; 5.Crie um botão finalizar em passo2.xhtml que finaliza a conversação; 6.Acesse passo1.xhtml pela barra de endereços do browser; Componentes Contextuais

Mapeamento Objeto Relacional Configuração *-ds.xml Configuração do banco de dados persistence.xml Configuração do JPA (Hibernate 3) components.xml Configuração do Seam import.sql Script de carga inicial

Mapeamento Objeto Relacional Configuração components.xml persistence.xml *-ds.xml jndi factory (“entityManager”) entityManager

Mapeamento Objeto Relacional Entidade É um DTO (Data Transfer Object) que será persistido. TelefoneUsuario * 1 Tipo * 1 0..

Entidade indica que uma classe é uma define o campo ID da gera valores define o atributo como Length define o tamanho do campo Mapeamento Objeto Relacional

Entidade Prática 1.Crie a classe Usuario e coloque os seguintes atributos: 1.Long id; 2.String login; 3.String senha; 4.String ; 5.Date nascimento; 6.boolean ativo; 2.Crie uma propriedade Usuario instance na classe UsuarioAction; 3.Remova os demais atributos da classe UsuarioAction; 4.Faça o exercício anterior funcionar com esta nova estrutura; 5.Persista a entidade ao clicar em Finalizar; 6.Insira 5 usuários no script de carga inicial; Mapeamento Objeto Relacional

Seam Application Framework Introdução Abstrações que o Seam traz 1.Query Objects 2.Home Objects 3.Controller Objects

Seam Application Framework Query Objects Utilizado para telas de listagem; Utiliza recursos do JSF, tais como DataModel e DataModelSelection; Pode-se incluir restrições às consultas; Pode-se incluir ordenação às consultas;

Seam Application Framework Query Objects Utilizado para telas de listagem; Utiliza recursos do JSF, tais como DataModel e DataModelSelection; Pode-se incluir restrições às consultas; Pode-se incluir ordenação às consultas; Pode ser feito via XML ou herdando a classe EntityQuery;

Query Objects Prática 1.Crie o componente UsuarioQuery, que lista todos os usuários; 2.Crie a view listUsuarios.xhtml, use o ou o ; 3.Crie o botão remover, para cada elemento da lista, que exclui o elemento. Use o invocando o método #{usuarioQuery.remover} exatamente desta forma: sem parâmetros e sem parênteses; 4.Crie a view editUsuarios.xhtml e deixe-a vazia; 5.Crie um link em listUsuarios.xhtml, para cada elemento da lista, que invoca a view “/editUsuarios.xhtml” passando como parâmetro o ID da entidade. Mapeamento Objeto Relacional

Seam Application Framework Home Objects Utilizado para telas CRUD: Create, Read, Update e Delete; Espera um parâmetro ID; Persiste uma entidade; Geralmente faz uso dos validators

Seam Application Framework [OFF-TOPIC] Validators Executa validações de propriedades Não serve somente para Entity

[OFF-TOPIC] Validators valida o tamanho do a data está no a data está no verifica se é um verifica se é somente dígito. Seam Application Framework

Home Objects Prática 1.Crie o componente UsuarioHome; 2.Modifique a view editUsuario.xhtml para utilizar o helper UsuarioHome; 3.Utilize validadores; Mapeamento Objeto Relacional

Seam Application Framework Controller Objects É um componente Seam para a camada de apresentação, ou seja, é um Action; Disponibiliza métodos para acessar o FacesMessages e o Log; Só isso!

Controller Objects Prática 1.Modifique a classe UsuarioAction, fazendo-a herdar de Controller; 2.Faça que ela se comporte de forma idêntica ao UsuarioHome; 3.Retire a do UsuarioHome; 4.Anote UsuarioAction ("usuarioHome"); 5.Teste novamente seu CRUD e faça-o funcionar! Mapeamento Objeto Relacional

Fim