tdc2012 - implementando aplicativos web com jsf, cdi e jpa
DESCRIPTION
TRANSCRIPT
![Page 1: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/1.jpg)
Globalcode – Open4education
Trilha – Java EE University
Implementando aplicativos Web com JSF, CDI e JPA
Rodrigo Cândido da Silva
![Page 2: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/2.jpg)
Globalcode – Open4education
Agenda
Java Server Faces (JSF)
Java Persistence API (JPA)
Context Dependency Injection (CDI)
Demo
![Page 3: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/3.jpg)
Globalcode – Open4education
JSFJavaServer Faces
![Page 4: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/4.jpg)
Globalcode – Open4education
JSF ( Java Server Faces)
Java
Especificação
Integração
Ajax Nativo
![Page 5: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/5.jpg)
Globalcode – Open4education
JSF: o que é?
Java Server Faces
Framework MVC proposto em 2001
JSR 127 (1.0 e 1.1, 2001), JSR 252 (1.2, 2004), JSR 314 (2.0,2007)
Padronizou o desenvolvimento de interface de usuário web
Definido por grupo de especialistas composto de empresas e pessoas físicas
Suportado pelos containers homologados para JEE 5 ou superior
Baseado na tecnologia Servlets
Ed Burns, Roger Kitain - Sun
http://java.sun.com/javaee/javaserverfaces/
![Page 6: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/6.jpg)
Globalcode – Open4education
MVC - Dividir e conquistar
Beleza vs Funcionamento
Código Organizado
Manutenção Fácil
Sabe aonde achar o erro
![Page 7: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/7.jpg)
Globalcode – Open4education
JSF: principais componentes
J2EE Web Container J2EE EJB Container
Controller ModelView
Servlet JavaBeansJavaServerPages
CustomTag
EJB
javax.faces
JSF e J2EE
![Page 8: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/8.jpg)
Globalcode – Open4education
Página JSF
Tags: JSF HTML
Tags: JSF Core
Request
ManagedBean
Session
ManagedBean
Application
ManagedBean
Expression Language: EL
Links, formulários, imagens,combo-box, tabelas, etc…
Através destas tags adicionamos validação, conversão de dados, listeners
Dados para popular as tabelas, combo-box, textos.
Criação de páginas JSF
![Page 9: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/9.jpg)
Globalcode – Open4education
JSF: principais componentes
Pág
ina
JSF
face
s-co
nfi
g.x
ml
Man
aged
Bea
n
![Page 10: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/10.jpg)
Globalcode – Open4education
Integração
![Page 11: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/11.jpg)
Globalcode – Open4education
Frameworks em JSF
Basta baixar e usar
![Page 12: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/12.jpg)
Globalcode – Open4education
Economizando código com o Facelets
Economiza Código
Evita “mokey codes”
Previne dores de Cabeça
Manutenção rápida
![Page 13: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/13.jpg)
Globalcode – Open4education
Criando uma vez e usando quantas quiser
Composite Component
![Page 14: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/14.jpg)
Globalcode – Open4education
JPAJava Persistence API
![Page 15: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/15.jpg)
Globalcode – Open4education
Java Persistence API
Primeira especificação (padrão) de mapeamento de objetos Java para base de dados relacionalIntegração com outros frameworks
Hibernate é uma implementação de JPATopLink Essencials é uma implementação de JPA (RI)
POJO (Plain Old Java Objects) EntidadesMapeamento via metadados (annotation Java 5)
Pode ser utilizado fora de containeres EJBs (ligthweigth container)
Uso de injeção de dependência ao invés de lookups JNDI
![Page 16: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/16.jpg)
Globalcode – Open4education
Java Persistence API
![Page 17: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/17.jpg)
Globalcode – Open4education
Java Persistence API
![Page 18: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/18.jpg)
Globalcode – Open4education
Java Persistence API
EntityManager (javax.persistence)
(B) find / query(C) persist(D) clear / serialização(E) merge (F) remove
![Page 19: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/19.jpg)
Globalcode – Open4education
Java Persistence API
Persistence Unit
![Page 20: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/20.jpg)
Globalcode – Open4education
Java Persistence API
![Page 21: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/21.jpg)
Globalcode – Open4education
CDIContext Dependency Injection
![Page 22: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/22.jpg)
Globalcode – Open4education
CDI (JSR-299)
CDI = Context Dependency Injection
Novo modelo para gerenciamento de beans e injeção de dependência
Nova definição para escopos de aplicação
Também conhecido como “Web Beans”
Integra as camadas web e negócio da aplicaçãoFacilita a implementação das aplicações que utilizam
tecnologias como JSF e EJB (Java EE)
![Page 23: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/23.jpg)
Globalcode – Open4education
CDI (JSR-299)
Gerenciamento de ciclo de vida de componentes statefull
Provê um mecanismo de DI typesafe
Disponibiliza mecanismo de eventos facilitando o desenvolvimento com baixo acoplamento
Tem um mecanismo de Interceptors e Decorators
Possibilita a criação de extensões portáveis para qualquer implementação
Integração com EL
![Page 24: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/24.jpg)
Globalcode – Open4education
CDI no Java EE 6
![Page 25: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/25.jpg)
Globalcode – Open4education
CDI Managed Beans
Nova definição para “beans
Instâncias são gerenciadas pelo container
Serviços disponíveisInjeção de Dependência
Ciclo de vida
Interceptors
Events
![Page 26: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/26.jpg)
Globalcode – Open4education
CDI Managed Beans
![Page 27: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/27.jpg)
Globalcode – Open4education
Configuração CDI
![Page 28: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/28.jpg)
Globalcode – Open4education
Hello World
![Page 29: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/29.jpg)
Globalcode – Open4education
O que pode ser injetado
CDI Managed Beans (POJO)
Objetos retornados por @Produces
EJB Session Bean (local ou remoto)
Java EE Resources (DataSource, JMS)
JTA UserTransaction
EntityManager (JPA)
Bean Validation Factory
Destination e ConnectionFactory JMS
![Page 30: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/30.jpg)
Globalcode – Open4education
Principais Recursos
Injection Points
Qualifiers
Alternatives
EL Names
Producer Methods
Java EE Resources
Scopes and Contexts
Interceptors
Stereotypes
Events
![Page 31: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/31.jpg)
Globalcode – Open4education
E que venha o código
Demonstração
![Page 32: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/32.jpg)
Globalcode – Open4education
Perguntas e Respostas
?
![Page 33: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA](https://reader033.vdocuments.mx/reader033/viewer/2022061218/54810440b37959582b8b5cdb/html5/thumbnails/33.jpg)
Globalcode – Open4education
Obrigado