Post on 29-Nov-2014
description
Globalcode – Open4education
Trilha – Java EE University
Implementando aplicativos Web com JSF, CDI e JPA
Rodrigo Cândido da Silva
Globalcode – Open4education
Agenda
Java Server Faces (JSF)
Java Persistence API (JPA)
Context Dependency Injection (CDI)
Demo
Globalcode – Open4education
JSFJavaServer Faces
Globalcode – Open4education
JSF ( Java Server Faces)
Java
Especificação
Integração
Ajax Nativo
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/
Globalcode – Open4education
MVC - Dividir e conquistar
Beleza vs Funcionamento
Código Organizado
Manutenção Fácil
Sabe aonde achar o erro
Globalcode – Open4education
JSF: principais componentes
J2EE Web Container J2EE EJB Container
Controller ModelView
Servlet JavaBeansJavaServerPages
CustomTag
EJB
javax.faces
JSF e J2EE
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
Globalcode – Open4education
JSF: principais componentes
Pág
ina
JSF
face
s-co
nfi
g.x
ml
Man
aged
Bea
n
Globalcode – Open4education
Integração
Globalcode – Open4education
Frameworks em JSF
Basta baixar e usar
Globalcode – Open4education
Economizando código com o Facelets
Economiza Código
Evita “mokey codes”
Previne dores de Cabeça
Manutenção rápida
Globalcode – Open4education
Criando uma vez e usando quantas quiser
Composite Component
Globalcode – Open4education
JPAJava Persistence API
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
Globalcode – Open4education
Java Persistence API
Globalcode – Open4education
Java Persistence API
Globalcode – Open4education
Java Persistence API
EntityManager (javax.persistence)
(B) find / query(C) persist(D) clear / serialização(E) merge (F) remove
Globalcode – Open4education
Java Persistence API
Persistence Unit
Globalcode – Open4education
Java Persistence API
Globalcode – Open4education
CDIContext Dependency Injection
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)
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
Globalcode – Open4education
CDI no Java EE 6
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
Globalcode – Open4education
CDI Managed Beans
Globalcode – Open4education
Configuração CDI
Globalcode – Open4education
Hello World
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
Globalcode – Open4education
Principais Recursos
Injection Points
Qualifiers
Alternatives
EL Names
Producer Methods
Java EE Resources
Scopes and Contexts
Interceptors
Stereotypes
Events
Globalcode – Open4education
E que venha o código
Demonstração
Globalcode – Open4education
Perguntas e Respostas
?
Globalcode – Open4education
Obrigado