SlideShare uma empresa Scribd logo
Implementando aplicativos Web com JSF, CDI e
                    JPA

   Trilha – Java EE University
              Rodrigo Cândido da Silva




                                         Globalcode – Open4education
Agenda

   Java Server Faces (JSF)
   Java Persistence API (JPA)
   Context Dependency Injection (CDI)
   Demo




                                        Globalcode – Open4education
JavaServer Faces

JSF


                   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

JSF e J2EE

  javax.faces




 Controller     View              Model

  Servlet       Java     Custom   JavaBeans               EJB
                Server   Tag
                Pages



                                              Globalcode – Open4education
Criação de páginas JSF


   Página JSF         Links, formulários, imagens,          Request
                      combo-box, tabelas, etc…
                                                          Managed
                                                          Bean
  Tags: JSF HTML    Expression Language: EL
   Tags: JSF Core                                           Session
                      Através destas tags adicionamos
                      validação, conversão de dados,       Managed
                      listeners                            Bean


                        Dados para popular as tabelas,
                        combo-box, textos.               Application
                                                           Managed
                                                           Bean




                                                         Globalcode – Open4education
JSF: principais componentes
Página JSF
faces-config.xml




                     Managed Bean




                                    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
Java Persistence API

JPA


                       Globalcode – Open4education
Java Persistence API

Primeira especificação (padrão) de mapeamento de objetos
   Java para base de dados relacional
   Integração com outros frameworks
                Hibernate é uma implementação de JPA
                TopLink Essencials é uma implementação de JPA (RI)


POJO (Plain Old Java Objects)  Entidades
   Mapeamento 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
Context Dependency Injection

CDI


                               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ção
  Facilita 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íveis
  Injeçã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




           Globalcode – Open4education

Mais conteúdo relacionado

Mais procurados

JUDCon Brazil 2013
JUDCon Brazil 2013JUDCon Brazil 2013
JUDCon Brazil 2013
George Gastaldi
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
Eder Magalhães
 
JBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisJBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 Florianópolis
George Gastaldi
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
jornaljava
 
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
Dr. Spock
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
Rodrigo Cândido da Silva
 
Apresentação
ApresentaçãoApresentação
Apresentação
Sylvio Barbon
 
As Novidades do JMS 2.0
As Novidades do JMS 2.0As Novidades do JMS 2.0
As Novidades do JMS 2.0
Bruno Borges
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
Adriano Tavares
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
Bruno Borges
 
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
Bruno Borges
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Adriano Teixeira de Souza
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Bruno Borges
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
Sliedesharessbarbosa
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
Rosicleia Frasson
 

Mais procurados (15)

JUDCon Brazil 2013
JUDCon Brazil 2013JUDCon Brazil 2013
JUDCon Brazil 2013
 
Introdução a Plataforma Java EE
Introdução a Plataforma Java EEIntrodução a Plataforma Java EE
Introdução a Plataforma Java EE
 
JBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 FlorianópolisJBoss Forge TDC - 2012 Florianópolis
JBoss Forge TDC - 2012 Florianópolis
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
TDC2012: Explorando os conceitos básicos da API de CDI do Java EE 6
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
As Novidades do JMS 2.0
As Novidades do JMS 2.0As Novidades do JMS 2.0
As Novidades do JMS 2.0
 
Repensando padrões e boas práticas java ee
Repensando padrões e boas práticas java eeRepensando padrões e boas práticas java ee
Repensando padrões e boas práticas java ee
 
GlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EEGlassFish, Maven, Cloud e Java EE
GlassFish, Maven, Cloud e Java EE
 
GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!GlassFish e Maven: Java EE sem dor!
GlassFish e Maven: Java EE sem dor!
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12cJava EE no ambiente corporativo: primeiros passos WebLogic 12c
Java EE no ambiente corporativo: primeiros passos WebLogic 12c
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 

Semelhante a TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

TDC 2012 - JDF
TDC 2012 - JDFTDC 2012 - JDF
TDC 2012 - JDF
Rafael Benevides
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
Rodrigo Cândido da Silva
 
TDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDITDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDI
Rodrigo Cândido da Silva
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
Rafael Ponte
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
Wende Mendes
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
Jorge William Rodrigues
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
Dr. Spock
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
Paulo Jerônimo
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
Rodrigo Cândido da Silva
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011
Eder Magalhães
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
Dr. Spock
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
Eder Magalhães
 
Os 5 Níveis de Reuso
Os 5 Níveis de ReusoOs 5 Níveis de Reuso
Os 5 Níveis de Reuso
Dr. Spock
 
Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF
Otávio Santana
 
Richfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoRichfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais rico
Eder Magalhães
 
JSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesJSF 2 - Java "Super" Faces
JSF 2 - Java "Super" Faces
Filipe Portes
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
Eder Magalhães
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
cejug
 
Spring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkSpring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do Framework
Dr. Spock
 

Semelhante a TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA (20)

TDC 2012 - JDF
TDC 2012 - JDFTDC 2012 - JDF
TDC 2012 - JDF
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 
TDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDITDC2010 - Turbinando sua Aplicação com CDI
TDC2010 - Turbinando sua Aplicação com CDI
 
Anatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer FacesAnatomia do JSF, JavaServer Faces
Anatomia do JSF, JavaServer Faces
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
 
JSF 2 Components JustJava2011
JSF 2 Components JustJava2011JSF 2 Components JustJava2011
JSF 2 Components JustJava2011
 
JSF 2.0 e ScrumToys
JSF 2.0 e ScrumToysJSF 2.0 e ScrumToys
JSF 2.0 e ScrumToys
 
Spring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
 
JavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computingJavaEE 7, na era do cloud computing
JavaEE 7, na era do cloud computing
 
Os 5 Níveis de Reuso
Os 5 Níveis de ReusoOs 5 Níveis de Reuso
Os 5 Níveis de Reuso
 
Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF Implementando aplicativos Web com JSF
Implementando aplicativos Web com JSF
 
Richfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais ricoRichfaces 4 - Desenvolvimento JSF mais rico
Richfaces 4 - Desenvolvimento JSF mais rico
 
JSF 2 - Java "Super" Faces
JSF 2 - Java "Super" FacesJSF 2 - Java "Super" Faces
JSF 2 - Java "Super" Faces
 
Introducao Spring ROO
Introducao Spring ROOIntroducao Spring ROO
Introducao Spring ROO
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Spring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do FrameworkSpring 3: Uma Plataforma além do Framework
Spring 3: Uma Plataforma além do Framework
 

Mais de Rodrigo Cândido da Silva

Java 9, 10 e ... 11
Java 9, 10 e ... 11Java 9, 10 e ... 11
Java 9, 10 e ... 11
Rodrigo Cândido da Silva
 
Cloud Native Java EE
Cloud Native Java EECloud Native Java EE
Cloud Native Java EE
Rodrigo Cândido da Silva
 
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de ImplementaçãoProtegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
Rodrigo Cândido da Silva
 
Protecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and StrategiesProtecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and Strategies
Rodrigo Cândido da Silva
 
As novidades da nova versão do Java 9
As novidades da nova versão do Java 9As novidades da nova versão do Java 9
As novidades da nova versão do Java 9
Rodrigo Cândido da Silva
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Rodrigo Cândido da Silva
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Rodrigo Cândido da Silva
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Rodrigo Cândido da Silva
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
Rodrigo Cândido da Silva
 
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
Rodrigo Cândido da Silva
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
Rodrigo Cândido da Silva
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
Rodrigo Cândido da Silva
 
GUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com JavaGUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com Java
Rodrigo Cândido da Silva
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EEJavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
Rodrigo Cândido da Silva
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
Rodrigo Cândido da Silva
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTJavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
Rodrigo Cândido da Silva
 
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudTDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
Rodrigo Cândido da Silva
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
Rodrigo Cândido da Silva
 
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
Rodrigo Cândido da Silva
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
Rodrigo Cândido da Silva
 

Mais de Rodrigo Cândido da Silva (20)

Java 9, 10 e ... 11
Java 9, 10 e ... 11Java 9, 10 e ... 11
Java 9, 10 e ... 11
 
Cloud Native Java EE
Cloud Native Java EECloud Native Java EE
Cloud Native Java EE
 
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de ImplementaçãoProtegendo Microservices: Boas Práticas e Estratégias de Implementação
Protegendo Microservices: Boas Práticas e Estratégias de Implementação
 
Protecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and StrategiesProtecting Java Microservices: Best Practices and Strategies
Protecting Java Microservices: Best Practices and Strategies
 
As novidades da nova versão do Java 9
As novidades da nova versão do Java 9As novidades da nova versão do Java 9
As novidades da nova versão do Java 9
 
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesWorkshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
Workshop Microservices - Distribuindo os Microservices com Docker e Kubernetes
 
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSSWorkshop Microservices - Microservices com Spring Cloud e Netflix OSS
Workshop Microservices - Microservices com Spring Cloud e Netflix OSS
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring Boot
 
Workshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura MicroservicesWorkshop Microservices - Arquitetura Microservices
Workshop Microservices - Arquitetura Microservices
 
GUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em JavaGUJavaSC - Protegendo Microservices em Java
GUJavaSC - Protegendo Microservices em Java
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
 
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOpsGUJavaSC - Combinando Micro-serviços com Práticas DevOps
GUJavaSC - Combinando Micro-serviços com Práticas DevOps
 
GUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com JavaGUJavaSC - Criando Micro-serviços Reativos com Java
GUJavaSC - Criando Micro-serviços Reativos com Java
 
JavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EEJavaOne 2016 - Reactive Microservices with Java and Java EE
JavaOne 2016 - Reactive Microservices with Java and Java EE
 
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EEJavaOne LATAM 2016 - Combinando AngularJS com Java EE
JavaOne LATAM 2016 - Combinando AngularJS com Java EE
 
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data RESTJavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
JavaOne LATAM 2016 - RESTful Services Simplificado com Spring Data REST
 
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring CloudTDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
TDC Floripa 2016 - Decolando seus micro-serviços na Spring Cloud
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 

TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

  • 1. Implementando aplicativos Web com JSF, CDI e JPA Trilha – Java EE University Rodrigo Cândido da Silva Globalcode – Open4education
  • 2. Agenda Java Server Faces (JSF) Java Persistence API (JPA) Context Dependency Injection (CDI) Demo Globalcode – Open4education
  • 3. JavaServer Faces JSF Globalcode – Open4education
  • 4. JSF ( Java Server Faces) Java Especificação Integração Ajax Nativo Globalcode – Open4education
  • 5. 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
  • 6. MVC - Dividir e conquistar Beleza vs Funcionamento Código Organizado Manutenção Fácil Sabe aonde achar o erro Globalcode – Open4education
  • 7. JSF: principais componentes J2EE Web Container J2EE EJB Container JSF e J2EE javax.faces Controller View Model Servlet Java Custom JavaBeans EJB Server Tag Pages Globalcode – Open4education
  • 8. Criação de páginas JSF Página JSF Links, formulários, imagens, Request combo-box, tabelas, etc… Managed Bean Tags: JSF HTML Expression Language: EL Tags: JSF Core Session Através destas tags adicionamos validação, conversão de dados, Managed listeners Bean Dados para popular as tabelas, combo-box, textos. Application Managed Bean Globalcode – Open4education
  • 9. JSF: principais componentes Página JSF faces-config.xml Managed Bean Globalcode – Open4education
  • 10. Integração Globalcode – Open4education
  • 11. Frameworks em JSF Basta baixar e usar Globalcode – Open4education
  • 12. Economizando código com o Facelets Economiza Código Evita “mokey codes” Previne dores de Cabeça Manutenção rápida Globalcode – Open4education
  • 13. Criando uma vez e usando quantas quiser Composite Component Globalcode – Open4education
  • 14. Java Persistence API JPA Globalcode – Open4education
  • 15. Java Persistence API Primeira especificação (padrão) de mapeamento de objetos Java para base de dados relacional Integração com outros frameworks Hibernate é uma implementação de JPA TopLink Essencials é uma implementação de JPA (RI) POJO (Plain Old Java Objects)  Entidades Mapeamento 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
  • 16. Java Persistence API Globalcode – Open4education
  • 17. Java Persistence API Globalcode – Open4education
  • 18. Java Persistence API EntityManager (javax.persistence) (B) find / query (C) persist (D) clear / serialização (E) merge (F) remove Globalcode – Open4education
  • 19. Java Persistence API Persistence Unit Globalcode – Open4education
  • 20. Java Persistence API Globalcode – Open4education
  • 21. Context Dependency Injection CDI Globalcode – Open4education
  • 22. 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ção Facilita a implementação das aplicações que utilizam tecnologias como JSF e EJB (Java EE) Globalcode – Open4education
  • 23. 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
  • 24. CDI no Java EE 6 Globalcode – Open4education
  • 25. CDI Managed Beans Nova definição para “beans Instâncias são gerenciadas pelo container Serviços disponíveis Injeção de Dependência Ciclo de vida Interceptors Events Globalcode – Open4education
  • 26. CDI Managed Beans Globalcode – Open4education
  • 27. Configuração CDI Globalcode – Open4education
  • 28. Hello World Globalcode – Open4education
  • 29. 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
  • 30. Principais Recursos Injection Points Qualifiers Alternatives EL Names Producer Methods Java EE Resources Scopes and Contexts Interceptors Stereotypes Events Globalcode – Open4education
  • 31. E que venha o código Demonstração Globalcode – Open4education
  • 32. Perguntas e Respostas ? Globalcode – Open4education
  • 33. Obrigado Globalcode – Open4education

Notas do Editor

  1. Comentar sobre a história do surgimento do JPA (como por exemplo a contribuição do Hibernate e do Gavin King para esta especificação) Falar sobre os benefícios na utilização de JPA em uma aplicação que necessita de persistência como (aumento da produtividade, diminuição da complexidade, ganho de performance, etc)
  2. Comentar sobre o modelo da arquitetura do JPA, que possui uma similaridade com o modelo JDBC, composto por uma API de interfaces e pelos JPA providers (Hibernate, EclipseLink, Castor, etc)
  3. Comentar sobre a facilidade de implementação do JPA utilizando anotações, simplificando muito o mapeamento das entidades e também utilizando-se do conceito de “defaults” amplamente utilizado pelo Java EE 5. Demonstrar o exemplo de um JavaBean mapeado comentando sobre algumas anotações principais (@Entity, @Table, @Id, @Column)
  4. Comentar sobre o conceito do objeto EntityManager dentro do JPA, responsável pela publicação dos métodos de persistência (find, persist, merge, remove) e também pelo gerenciamento dos Entity JavaBeans;
  5. * Demonstrar o exemplo de configuração do JPA, definindo as configurações do PersistenceContext e também do provider específico.
  6. * Demonstrar um exemplo de utilização do JPA, utilizando os métodos do EntityManager para realizar o processo de persistência dos Entity JavaBeans.