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

TDC2012 - Implementando aplicativos Web com JSF, CDI e JPA

  • 1.
    Implementando aplicativos Webcom 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 ( JavaServer 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 - Dividire conquistar Beleza vs Funcionamento Código Organizado Manutenção Fácil Sabe aonde achar o erro Globalcode – Open4education
  • 7.
    JSF: principais componentes J2EEWeb 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áginasJSF 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áginaJSF 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 como Facelets Economiza Código Evita “mokey codes” Previne dores de Cabeça Manutenção rápida Globalcode – Open4education
  • 13.
    Criando uma veze usando quantas quiser Composite Component Globalcode – Open4education
  • 14.
    Java Persistence API JPA Globalcode – Open4education
  • 15.
    Java Persistence API Primeiraespecificaçã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 PersistenceUnit 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 deciclo 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 JavaEE 6 Globalcode – Open4education
  • 25.
    CDI Managed Beans Novadefiniçã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 podeser 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 venhao código Demonstração Globalcode – Open4education
  • 32.
    Perguntas e Respostas ? Globalcode – Open4education
  • 33.
    Obrigado Globalcode – Open4education

Notas do Editor

  • #16 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)
  • #17 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)
  • #18 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)
  • #19 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;
  • #20 * Demonstrar o exemplo de configuração do JPA, definindo as configurações do PersistenceContext e também do provider específico.
  • #21 * Demonstrar um exemplo de utilização do JPA, utilizando os métodos do EntityManager para realizar o processo de persistência dos Entity JavaBeans.