TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

33
Globalcode – Open4education Trilha – Java EE University Implementando aplicativos Web com JSF, CDI e JPA Rodrigo Cândido da Silva

description

 

Transcript of TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Page 1: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

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

Globalcode – Open4education

JSFJavaServer Faces

Page 4: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

JSF ( Java Server Faces)

Java

Especificação

Integração

Ajax Nativo

Page 5: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

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

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

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

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

Globalcode – Open4education

Integração

Page 11: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Frameworks em JSF

Basta baixar e usar

Page 12: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

Globalcode – Open4education

Criando uma vez e usando quantas quiser

Composite Component

Page 14: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

JPAJava Persistence API

Page 15: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

Globalcode – Open4education

Java Persistence API

Page 17: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Java Persistence API

Page 18: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

Globalcode – Open4education

Java Persistence API

Persistence Unit

Page 20: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Java Persistence API

Page 21: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

CDIContext Dependency Injection

Page 22: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

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

Globalcode – Open4education

CDI no Java EE 6

Page 25: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

Globalcode – Open4education

CDI Managed Beans

Page 27: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Configuração CDI

Page 28: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Hello World

Page 29: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

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

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

Globalcode – Open4education

E que venha o código

Demonstração

Page 32: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Perguntas e Respostas

?

Page 33: TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

Globalcode – Open4education

Obrigado