MC - Java Enterprise Edition 6 (Java EE)

Click here to load reader

  • date post

    28-Jun-2015
  • Category

    Technology

  • view

    928
  • download

    55

Embed Size (px)

description

Mini-curso sobre Java Enterprise Edition 6 (Java EE).

Transcript of MC - Java Enterprise Edition 6 (Java EE)

  • Slide 1 Globalcode

    Mini-curso Gratuito

    Rodrigo Cndido da Silva VOffice / Globalcode

  • Slide 2 Globalcode

    Mini-curso Gratuito

    http://open4education.googlecode.com/

  • Slide 3 Globalcode

    Doaes

    Entidade Orionpolis Catarinense

    uma entidade filantrpica, sem fins lucrativos, que abriga gratuitamente em sistema de vila e regime de internato: idosos, crianas e adultos portadores de deficincias e multideficiencias fsica e mental que vivem em estado de abandono familiar e econmico.

    Atualmente abrigam 67 pessoas Para Maiores Informaes

    http://orionopolis.floripa.com.br [email protected] Telefone (048) 3343-0087

    MUITO OBRIGADO TODOS !!!

  • Slide 4 Globalcode

    Palestrante

  • Slide 5 Globalcode

    Objetivo

    Conhecer a plataforma Java Enterprise Edition 6 e entender as principais diferenas desta verso

    em relao as verses anteriores

  • Slide 6 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 7 Globalcode

    Jogo Rpido

    Quem trabalha com Java EE? Servlet? JSF? JPA? EJB?

    Quem j estudou alguma funcionalidade do Java EE 6? Quem est interessado em se atualizar? Quem gostou do jogo do Brasil ontem? :/

  • Slide 8 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 9 Globalcode

    Plataforma Java

    Desenvolvimento de software robusto para diferentes tipos de dispositivos PC, celular, palmtop, robs, etc.

    Software Multiplataforma Escreva uma vez e execute em qualquer lugar... Cdigo no precisa ser recompilado para executar em outro sistema

    operacional

    Mquina Virtual (Java Virtual Machine - JVM) Responsvel por oferecer a flexibilidade de sistema operacional para um

    software Java

    Mantida pela comunidade de desenvolvedores por meio do JCP (Java Community Process)

  • Slide 10 Globalcode

    Plataforma Java

    A plataforma dividida em trs partes:

    Java Standard Edition (Java SE) Base do Java que contm as principais APIs

    Java Enterprise Editon (Java EE) Verso de Java para desenvolvimento de aplicaes Web e enterprise que

    rodam em servidores padronizados

    Java Micro Edition (Java ME) Reduo da plataforma Standard para dispositivos mveis como PDA e

    celulares

  • Slide 11 Globalcode

    Java Enterprise Edition

    Suporte ao desenvolvimento de aplicaes enterprise Aplicaes distribudas, seguras, escalveis, de alta

    disponibilidade e com baixo custo de manuteno

    Plataforma para desenvolvimento de software de pequeno, mdio e grande porte em mltiplas camadas de componentes Componentes rodam em um servidor Java EE

  • Slide 12 Globalcode

    Java Enterprise Edition

  • Slide 13 Globalcode

    Java Enterprise Edition

    Containers Java EE

  • Slide 14 Globalcode

    Java Enterprise Edition

    Servios oferecidos pelos containeres Java EE: Gesto de memria, ciclo de vida de objetos e estado de

    objetos

    Conexes, Transaes, Servio de nomes Segurana Tolerncia a falhas Integrao WebServices Clustering Alta disponibilidade Confiabilidade...

  • Slide 15 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 16 Globalcode

    Containers (Java EE 5)

  • Slide 17 Globalcode

    Containers (Java EE 5)

    Web Container Trabalha em conjunto com um Servidor HTTP para oferecer

    suporte aos componentes da camada Web Tomcat (Apache) Jetty JRun (Adobe)

    EJB Container o servidor de componentes transacionais EJB

    OpenEJB (Apache) * Containeres especficos dos fabricantes de servidores de

    aplicao

  • Slide 18 Globalcode

    Profiles

    Define um sub-set de APIs do Java EE para rodar determinado tipo de aplicao (arquitetura)

    Dois profiles foram definidos neste momento pela especificao do Java Enterprise Web Profile

    Semelhante a idia do Web container, mas com mais funcionalidades incorporadas

    Full Profile Servidor Java EE completo

  • Slide 19 Globalcode

    Profiles

  • Slide 20 Globalcode

    Profiles

  • Slide 21 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 22 Globalcode

    Java Servlet

    Aplicaes que rodam no servidor e respondem requisies de clientes Web

  • Slide 23 Globalcode

    Java Servlet 3.0

    Novos Recursos Configurao por Anotaes Registro Dinmico de Componentes Web Fragments Servlet Container Initializer Resources Sharing Programatic Login / Logout Asynchronous Support

  • Slide 24 Globalcode

    Java Servlet 3.0

    Configurao por Anotaes @WebServlet

    Define o mapeamento do componente Servlet @WebFilter

    Define o mapeamento do componente Filter @WebListener

    Define o mapeamento do componente Listener @WebInitParam

    Define um parmetro de inicializao @ServletSecurity

    Define as constraints de segurana @MultipartConfig

    Utilizado para upload de arquivos

  • Slide 25 Globalcode

    Java Servlet 3.0

    @WebServlet

  • Slide 26 Globalcode

    Java Servlet 3.0

    @WebFilter

  • Slide 27 Globalcode

    Java Servlet 3.0

    @WebListener

  • Slide 28 Globalcode

    Java Servlet 3.0

    @WebInitParam

  • Slide 29 Globalcode

    Java Servlet 3.0

    @ServletSecurity

  • Slide 30 Globalcode

    Java Servlet 3.0

    Registro Dinmico de Componentes Carregamento dinmico de Servlets, Filters e Listeners Executado durante a inicializao do ServletContext Registro

    ServletContext#addServlet (#addFilter | #addListener) Criao e Registro

    ServletContext#createServlet (#createFilter | #createListener) Lookup

    ServletContext#getServlet (#getFilter | #getListener)

  • Slide 31 Globalcode

    Java Servlet 3.0

    Registro Dinmico de Componentes

  • Slide 32 Globalcode

    Java Servlet 3.0

    Web Fragments Define um pedao do arquivo ser incorporado ao web.xml Pode ser definido em diretrios META-INF de arquivos JARs

    adicionados no classpath da aplicao web (WEB-INF/lib) Ideal para configurao de frameworks (Struts, Spring, GWT)

    Sintaxe praticamente idntica ao arquivo web.xml tradicional, com pequenas modificaes na ordem dos elementos

    Caso haja conflito de nomes (Servlets, Filters, etc) os componentes definidos no web.xml tem prioridade

    Uma aplicao web pode ter mltiplos web fragments definido pela tag

  • Slide 33 Globalcode

    Java Servlet 3.0

    Web Fragments

  • Slide 34 Globalcode

    Java Servlet 3.0

    Servlet Container Initializer Mecanismo para inicializao de recursos (objetos) atravs de

    bibliotecas terceiras incorporados na aplicao web

    Executado antes de qualquer Listener durante a fase de inicializao da aplicao

    Para implementao Implementar a interface

    ServletContainerInitializer Definir quais tipos (anotaes) de classes sero inspecionadas

    @HandlesTypes Esta classe intercepta os componentes de acordo com os

    handles types definidos e executa o mtodo onStartup()

  • Slide 35 Globalcode

    Java Servlet 3.0

    Servlet Container Initializer

  • Slide 36 Globalcode

    Java Servlet 3.0

    Resources Sharing Possibilidade de adicionar JSPs dentro de arquivos JARs

    existentes no classpath (WEB-INF/lib) da aplicao web

    Devem ser organizados na seguinte estrutura WEB-INF/lib/[*.jar]/META-INF/resources

    JSPs definidos com o mesmo nome no diretrio da aplicao web tero prioridade

    Exemplo de utilizao mywebapp.war

    /WEB-INF/lib/shared.jar!/META-INF/resources/shared.jsp Endereo de acesso

    http://server/mywebapp/shared.jsp

  • Slide 37 Globalcode

    Java Servlet 3.0

    Programatic Login / Logout Adicionados novos mtodos na Servlet API para tratamento de

    login e logout da aplicao

    Todo processo de login e logout da aplicao pode ser manipulado atravs de programao No tem mais necessidade da definio

    Mtodos disponveis HttpServletRequest.login(String username, String password) HttpServletRequest.authenticate(HttpServletResponse) HttpServletRequest.logout()

  • Slide 38 Globalcode

    Java Servlet 3.0

    Asynchronous Support Modelo avanado para execuo the Threads Servlet no precisa mais esperar pela resposta de um outro

    recurso demorado para que sua Thread possa continuar executando

    Exemplos para utilizao Conexes JDBC no disponveis, retorno JMS, processos longos

    Servlets e Filters suportam esta funcionalidade, mas devem ser sinalizados como assncronos

    Para sinalizar suporte a este mecanismo @WebServlet(asynchSupported=true) true registration.setAsyncSupported(true);

  • Slide 39 Globalcode

    Java Servlet 3.0

    Asynchronous Support

  • Slide 40 Globalcode

    Java Servlet 3.0

    Asynchronous Support

  • Slide 41 Globalcode

    Java Servlet 3.0

    Asynchronous Support

  • Slide 42 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 43 Globalcode

    JavaServer Faces (JSF)

    Caractersticas Framework para implementao de interfaces grficas das

    aplicaes Web baseado no modelo de componentes

    Incorpora caractersticas de um framework MVC para Web e um modelo de interfaces baseados em eventos Separao entre visualizao e regras de negcio Visualizao pode ser feita por diferente renderizadores

    Padro de implementao para camada Web Especificao Java EE

    Amplo suporte das IDEs (Eclipse, NetBeans) Toolability = Ferramentabilidade

  • Slide 44 Globalcode

    J2EE Web Container J2EE EJB Container

    Controller Model View

    Servlet JavaBeans Java Server Pages

    Custom Tag

    EJB

    JavaServer Faces

    JavaServer Faces (JSF)

  • Slide 45 Globalcode

    JavaServer Faces (JSF) 2.0

    Novos Recursos Configurao por Anotaes Integrao com Facelets AJAX Support Composite Components Novas Regras de Navegao View Parameters

  • Slide 46 Globalcode

    JavaServer Faces (JSF) 2.0

    Configurao por Anotaes @ManagedBean @ManagedProperty JSF Scopes

    @ApplicationScoped, @RequestScoped, @SessionScoped, @NoneScoped, @ViewScoped, @CustomScoped

    @FacesConverter @FacesValidator @FacesRenderer @FacesBehavior @ResourceDependency @ListenerFor

  • Slide 47 Globalcode

    JavaServer Faces (JSF) 2.0

    @ManagedBean

  • Slide 48 Globalcode

    JavaServer Faces (JSF) 2.0

    @FacesConverter

  • Slide 49 Globalcode

    JavaServer Faces (JSF) 2.0

    @FacesValidator

  • Slide 50 Globalcode

    JavaServer Faces (JSF) 2.0

    @FacesBehavior

    @FacesRenderer

  • Slide 51 Globalcode

    JavaServer Faces (JSF) 2.0

    Integrao com Facelets Define o padro para templating e visualizao Utiliza XHTML ao invs de JSP

    JSP encontra-se @Deprecated No podemos adicionar cdigo Java no XTHML

    Incorporao das classes do Facelets na JSF API Mantm compatibilidade com verses anteriores Definido pela biblioteca (ui)

    http://java.sun.com/jsf/facelets Principais Facelets tags

  • Slide 52 Globalcode

    JavaServer Faces (JSF) 2.0

  • Slide 53 Globalcode

    JavaServer Faces (JSF) 2.0

    AJAX Support Suporte processamento de requisies AJAX integrado ao

    ciclo de vida dos componentes JSF

    Inspirado nos frameworks RichFaces, IceFaces, DynaFaces Define uma Javascript API padronizada

    Homologada na Open AJAX Alliance Suporta AJAX request, callbacks, error handling

    Define a tag para suporte AJAX aos componentes

  • Slide 54 Globalcode

    JavaServer Faces (JSF) 2.0

    AJAX Support Javascript API

  • Slide 55 Globalcode

    JavaServer Faces (JSF) 2.0

    AJAX Support Tag

  • Slide 56 Globalcode

    JavaServer Faces (JSF) 2.0

    Composite Components Define uma maneira facilitada para criao e extenso de

    componentes JSF

    Promove a reusabilidade visual Suporte facilitado pelas IDEs (Eclipse, NetBeans) Definido pela biblioteca (cc)

    http://java.sun.com/jsf/composite Principais tags

  • Slide 57 Globalcode

    JavaServer Faces (JSF) 2.0

    Composite Components

  • Slide 58 Globalcode

    JavaServer Faces (JSF) 2.0

    Composite Components

  • Slide 59 Globalcode

    JavaServer Faces (JSF) 2.0

    Novas Regras de Navegao Navegao Condicional

    Possibilidade de mapeamento no faces-config.xml, somente realizando o redirecionamento com base em um condicional

  • Slide 60 Globalcode

    JavaServer Faces (JSF) 2.0

    Novas Regras de Navegao Navegao Implcita

    Modelo de navegao direcionando o retorno da ao para uma view especfica, atravs do nome

  • Slide 61 Globalcode

    JavaServer Faces (JSF) 2.0

    View Parameters Propagao de request parameters usando HTTP GET Possibilidade de criao de Bookmarkable URLs Principais tags

    Deve ser includa dentro da tag

    Associa os request GET parameters com o JSF model Suporta Converters, Validators, etc

  • Slide 62 Globalcode

    JavaServer Faces (JSF) 2.0

    View Parameters http://server/view.xhtml?dept=mens&category=sport&sort=2

  • Slide 63 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 64 Globalcode

    Injeo de Dependncia (IoC)

    Mecanismo de injeo de recursos necessrios a um componente de forma automtica Sem a presena de instrues explcitas para acessar o

    recurso

    Exemplo: O componente de negcios A depende do componente de

    negcios B e do pool de conexes C.

    A B

    C

  • Slide 65 Globalcode

    Injeo de Dependncia (IoC)

    Sem injeo de dependncia: Cdigo fonte do componente A contm instrues para

    buscar o componente B e o recurso C

    A

    B C

    Servio de Nomes

    ejb/componenteB

    jdbc/dataSourceC

    lookups

  • Slide 66 Globalcode

    Injeo de Dependncia (IoC)

    A

    B C

    Servio de Nomes

    ejb/componenteB

    jdbc/dataSourceC

    injeo

    class ComponenteA { @EJB(name=ejb/componenteB) InterfaceB b; @Resource(name=jdbc/dataSourceC) DataSource c; }

    Com injeo de dependncia:

  • Slide 67 Globalcode

    Injeo de Dependncia (IoC)

    Exemplo de Utilizao (Java EE 5)

  • Slide 68 Globalcode

    Context Dependency Injection (CDI)

    O que CDI (JSR-299)? Novo modelo para gerenciamento de injeo de dependncia

    (IoC) e de escopos de aplicao

    Tambm conhecido como Web Beans Integra as camadas web e transacional da aplicao Facilita a implementao das aplicaes que utilizam

    tecnologias como JSF e EJB

    Para utilizar basta adicionar o arquivo beans.xml no diretrio de configurao da aplicao (WEB-INF , META-INF)

  • Slide 69 Globalcode

    Context Dependency Injection (CDI)

    Quem pode receber injeo ? Managed Beans EJB, Interceptor Servlet, Filter, *Listener, JSP Tag Handler Endpoints JAX-WS e Handlers

    O que pode ser injetado ? Referncias a EJBs e a Web Services DataSource JDBC Destination e ConnectionFactory JMS UserTransaction EntityManager (JPA) Remote EJB references ManagedBeans (POJO) Objetos retornados por @Produces

  • Slide 70 Globalcode

    Context Dependency Injection (CDI)

    Novos Recursos Injection Points Producer Methods and Fields Qualifiers Alternatives Expression Language Names Scopes and Contexts

    @ApplicationScoped, @RequestScoped, @SessionScoped, @ConversationScoped

    Interceptors Stereotypes Events

  • Slide 71 Globalcode

    Context Dependency Injection (CDI)

    Injection Points - @Inject

  • Slide 72 Globalcode

    Context Dependency Injection (CDI)

    Producer Methods and Fields - @Produces

  • Slide 73 Globalcode

    Context Dependency Injection (CDI)

    Qualifiers - @Qualifier

  • Slide 74 Globalcode

    Context Dependency Injection (CDI)

    Alternatives - @Alternative

  • Slide 75 Globalcode

    Context Dependency Injection (CDI)

    Expression Language Names - @Named

  • Slide 76 Globalcode

    Context Dependency Injection (CDI)

    Scopes and Contexts Define um modelo de escopos extensvel Podemos criar um @Singleton bean Dependent scope - @Dependent

    Escopo padro de todas classes Significa que o objeto injetado encontra-se no mesmo escopo e tem o mesmo

    ciclo de vida do objeto cliente

    Outros escopos disponveis @ApplicationScoped, @RequestScoped

    Para qualquer web requests, web service, RMI, EJB @SessionScoped

    Para qualquer servlet @ConversationScoped

    Para JSF requests

  • Slide 77 Globalcode

    Context Dependency Injection (CDI)

    Scopes and Contexts

  • Slide 78 Globalcode

    Context Dependency Injection (CDI)

    Scopes and Contexts - @ConversationScoped

  • Slide 79 Globalcode

    Context Dependency Injection (CDI)

    Interceptors

  • Slide 80 Globalcode

    Context Dependency Injection (CDI)

    Stereotypes - @Stereotype

  • Slide 81 Globalcode

    Context Dependency Injection (CDI)

    Events

  • Slide 82 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 83 Globalcode

    Enterprise JavaBeans (EJB)

    Caractersticas Plataforma para criao de aplicaes de negcio portveis,

    robustas e reutilizveis usando a linguagem Java

    Componentes para construir aplicaes sem precisar reinventar uma srie de recursos e servios Transao, Segurana, Persistencia

    Modelo alto nvel de objetos distribudos Computao distribuda

    Pode ser utilizado em aplicaes Web e no Web o CICS do Java

  • Slide 84 Globalcode

    Enterprise JavaBeans (EJB)

    EJB Session Bean

    Segu

    ran

    a

    Con

    trol

    e Tr

    ansa

    cion

    al

    Esca

    labi

    lidad

    e

    Queues Topics

    Data Sources

    Environment Entries

    EJB

    Infra Estrutura do Container

  • Slide 85 Globalcode

    Tipos de EJB: Session Bean

    Representa um processo de negcio Message-Driven Bean

    Trabalha de forma assncrona Entity Bean

    Representa um objeto persistente Definido pela especificao JPA

    Enterprise JavaBeans (EJB)

  • Slide 86 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Novos Recursos EJB Lite Empacotamento Simplificado Interface Opcional Singleton EJB Timer Service Mtodos Assncronos Nomes JNDI Padronizados Embeddable API

  • Slide 87 Globalcode

    EJB Lite Sub-conjunto de funcionalidades direcionadas para deploy dos

    EJBs no container Java EE Web Profile (.war)

    Enterprise JavaBeans (EJB) 3.1

    EJB Lite EJB Full

    Local Session Beans CMT / BMT Segurana Declarativa Interceptors

    Message-Driven Beans (MDB) Web Service Endpoints 2.x / 3.x Remove View Inter-operabilidade com RMI-IIOP Timer service Chamada assncrona metodos 2.x Local View CMP / BMP Entity Beans

  • Slide 88 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Empacotamento Simplificado Possibilita o deploy de componentes EJBs atravs de um .war Somente disponvel para os EJB Lite ejb-jar.xml no mais necessrio

    Java EE 5

    Java EE 6

  • Slide 89 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Interface Opcional No-interface = Local View

  • Slide 90 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Singleton EJB Define um EJB que implementa o padro Singleton

    Uma nica instncia por aplicao enterprise Abstrai a implementao deste padro dentro do ambiente

    enterprise Publicao no diretrio JNDI

    Suporta estratgias e configuraes para compartilhamento no acesso (locking)

    Anotaes @Singleton @Lock @AccessTimeout @ConcurrencyManager

  • Slide 91 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Singleton EJB

  • Slide 92 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Singleton EJB

  • Slide 93 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Timer Service Define uma estrutura para execuo baseada em calendrios Semntica baseada nos processos CRON Criao feita pelo container no deploy da aplicao Pode ser especificado por anotao ou atravs do ejb-jar.xml Relativo ao current TimeZone Sintaxe dos atributos

    minute = 30 month = Jan, Jul, Dec dayOfWeek = Mon-Fri dayOfMonth = Last Mon hour = * minute = */10

  • Slide 94 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Timer Service Processa na ltima sexta-feira de todo ms s 20:30 hrs no

    horrio local de So Paulo

  • Slide 95 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Mtodos Assncronos Mecanismo simples para realizar chamadas assncronas para

    uma aplicao enterprise (sem utilizar MDBs)

    Disponvel para utilizao em Stateful, Stateless e Singleton EJBs

    Definido pela anotao @Asynchronous Pode ser utilizada pela classe ou por mtodo

    Retorna um objeto Future que representa o resultado em processamento assncrono Future.isDone() Future.isCancelled() Future.get() Future.cancel(boolean)

  • Slide 96 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Mtodos Assncronos

  • Slide 97 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Nomes JNDI Padronizados Definio padronizada de nomes para lookup dos EJBs

    remotos e locais

    Eleva a portabilidade de aplicaes clientes Lookup global

    java : global [/] / / Lookup dentro da aplicao

    java : app [/] / Lookup dentro de um mesmo mdulo (JAR, WAR)

    java : module /

  • Slide 98 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Nomes JNDI Padronizados

    Se for realizado o deploy em componentes.jar java:global/componentes/MyEJB java:app/MyEJB java:module/MyEJB

  • Slide 99 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Embeddable API Biblioteca (API) customizada para rodar componentes EJBs

    fora do container (servidor) Java EE

    Implementa o mesmo comportamento (ciclo de vida, pooling, IoC) simulando um container Java EE

    Ideal para utilizao em testes unitrios Utilizao de Mock components

  • Slide 100 Globalcode

    Enterprise JavaBeans (EJB) 3.1

    Embeddable API

  • Slide 101 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 102 Globalcode

    Java Persistence API (JPA)

    Caractersticas Primeira especificao (padro) de mapeamento de objetos Java para

    base de dados relacional Integrao com outros frameworks

    Hibernate uma implementao de JPA TopLink Essencials uma implementao 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 injeo de dependncia ao invs de lookups JNDI

  • Slide 103 Globalcode

    Java Persistence API (JPA)

  • Slide 104 Globalcode

    Java Persistence API (JPA) 2.0

    Novos Recursos Standard Properties Melhorias no Mapeamento OR

    @ElementCollection, @CollectionTable, @OrderColumn Orphan Removal

    Melhorias na JPA-QL CASE, NULLIF, COALESCE

    Criteria API Melhorias na API Validao (Bean Validation) Second-level Caching Pessimistic Locking

  • Slide 105 Globalcode

    Java Persistence API (JPA) 2.0

    Standard Properties

  • Slide 106 Globalcode

    Java Persistence API (JPA) 2.0

    @ElementCollection (Basic Types)

  • Slide 107 Globalcode

    Java Persistence API (JPA) 2.0

    @ElementCollection (Embeddable Types)

  • Slide 108 Globalcode

    Java Persistence API (JPA) 2.0

    Maps

  • Slide 109 Globalcode

    Java Persistence API (JPA) 2.0

    Embeddables com Relacionamentos

  • Slide 110 Globalcode

    Java Persistence API (JPA) 2.0

    @OrderColumn

  • Slide 111 Globalcode

    Java Persistence API (JPA) 2.0

    Orphan Removal

  • Slide 112 Globalcode

    Java Persistence API (JPA) 2.0

    Melhorias na JPA-QL INDEX

    Utilizado para listas ordenadas KEY, VALUE, ENTRY

    Utilizado para manipulao de Maps CASE, COALESCE, NULLIF

    Utilizado para CASE expressions TYPE

    Utilizado para restringir polimorfismo

  • Slide 113 Globalcode

    Java Persistence API (JPA) 2.0

    Melhorias na JPA-QL

  • Slide 114 Globalcode

    Java Persistence API (JPA) 2.0

    Criteria API Biblioteca (API) para criao de queries dinmicas via

    programao (mtodos)

    Principais Classes CriteriaBuilder

    Criao de queries, selees, ordenao CriteriaQuery

    Adiciona, substitui, navega nos elementos que compes a query Root

    Define as query roots Join, ListJoin, MapJoin

    Joins partindo de um root ou de joins j existentes Path

    Navegao patindo de um root, join ou outro path Subquery

  • Slide 115 Globalcode

    Java Persistence API (JPA) 2.0

    Criteria API

  • Slide 116 Globalcode

    Java Persistence API (JPA) 2.0

    Melhorias na API

  • Slide 117 Globalcode

    Java Persistence API (JPA) 2.0

    Validao (Bean Validation) Definio de um novo modelo de validao para as entidades

    utilizando um conjunto de anotaes definidas pela JSR 303 (Bean Validation)

    Inspirado no projeto Hibernate Validator Validao automtica durante os eventos de ciclo de vida

    PrePersist PreUpdate PreRemove

  • Slide 118 Globalcode

    Java Persistence API (JPA) 2.0

    Validao (Bean Validation)

  • Slide 119 Globalcode

    Java Persistence API (JPA) 2.0

    Second-level Caching Compartilha a instncia da entidade entre vrios persistence

    contexts (EntityManager) utilizados pela aplicao

  • Slide 120 Globalcode

    Java Persistence API (JPA) 2.0

    Second-level Caching JPA 1.0 no definiu nenhum suporte second-level cache JPA 2.0 especificou um suporte bsico para as estas

    operaes de cache, atravs da Cache API

  • Slide 121 Globalcode

    Java Persistence API (JPA) 2.0

    Pessimistic Locking JPA 1.0 somente oferece suporte Lock Optimistic Encapsula os locks realizados no banco de dados Lock Modes

    PESSIMISTIC_READ (lock compartilhado) PESSIMISTIC_WRITE (lock exclusivo) PESSIMISTIC_FORCE_INCREMENT (lock versionado)

  • Slide 122 Globalcode

    Agenda

    " Plataforma Java EE " Principais Tecnologias (APIs)

    " Profiles " Java Servlet 3.0 " JSF 2.0 " CDI " EJB 3.1 " JPA 2.0

    " Comparativo de Verses " Perguntas e Respostas

  • Slide 123 Globalcode

    Comparativo de Verses

  • Slide 124 Globalcode

    Comparativo de Verses Java EE 1.4

    Novembro de 2003 EJB 2.1, Servlet 2.4 e JSP 2.0 Principais problemas

    Deployment descriptor Interfaces Entity beans Complexidade de aprendizado e desenvolvimento

    Java EE 5 Maio de 2006 Aumentar a produtividade e facilitar o desenvolvimento Principais mudanas

    Anotaes Enterprise JavaBeans 3.0 Java Persistence API (JPA) Injeo de dependncia Incluso de JSF 1.2 Novas verses das APIs existentes

  • Slide 125 Globalcode

    Comparativo de Verses

    Java EE 6 Dezembro 2009; Maior flexibilidade para a plataforma; Principais mudanas

    Java Servlet 3.0; EJB 3.1; JPA 2.0; JSF 2.0; CDI; Bean Validation 1.0; Profiles (deployment); Novas verses das APIs existentes.

  • Slide 126 Globalcode

    ? Perguntas & Respostas

  • Slide 127 Globalcode

    Mini-curso Gratuito

    Agradecemos a presena!

    http://open4education.googlecode.com/