Download - Serra StarTec 2013 - Java EE
![Page 1: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/1.jpg)
Plataforma Java EE
![Page 2: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/2.jpg)
Boa tarde !!!
! Rodrigo Cândido da Silva ! http://about.me/rcandidosilva ! @rcandidosilva
![Page 3: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/3.jpg)
Agenda
! Plataforma Java ! Java Enterprise Edition (Java EE) ! Java Persistence API (JPA) ! Enterprise JavaBeans (EJB) ! JavaServer Faces (JSF) ! Contexts and Dependency Injection (CDI) ! Java EE 7 ! Perguntas e Respostas
![Page 4: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/4.jpg)
Plataforma Java
![Page 5: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/5.jpg)
Porque Java?
! 68% das novas aplicações são em Java ! Java substituiu o C++ como a competência mais
procurada em profissionais ! 2 milhões de novos profissionais de TI são
necessários a cada ano ! Java é executado em múltiplas plataformas ! Java é executado em ampla gama de
dispositivos, de Smart Cards aos servidores dos grandes Data Centers
![Page 6: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/6.jpg)
Java Everywhere
![Page 7: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/7.jpg)
Quais empresas usam Java
![Page 8: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/8.jpg)
Mercado
![Page 9: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/9.jpg)
Oportunidades
![Page 10: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/10.jpg)
JAVA EE
![Page 11: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/11.jpg)
Java Enterprise Edition
! Suporte ao desenvolvimento de aplicações “enterprise” ! Aplicações distribuídas, seguras, escaláveis, de alta
disponibilidade e com baixo custo de manutenção
! Plataforma para desenvolvimento de software de pequeno, médio e grande porte em múltiplas camadas de componentes ! Componentes “rodam” em um servidor Java EE
![Page 12: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/12.jpg)
Java Enterprise Edition
![Page 13: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/13.jpg)
Java Enterprise Edition
! Serviços oferecidos pelos containeres Java EE: ! Gestão de memória, ciclo de vida de objetos ! Conexões, Transações, Serviço de nomes ! Segurança ! Tolerância a falhas ! Integração ! WebServices ! Clustering ! Alta disponibilidade ! Confiabilidade...
![Page 14: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/14.jpg)
JPA Java Persistence API
![Page 15: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/15.jpg)
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
![Page 16: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/16.jpg)
Java Persistence API
![Page 17: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/17.jpg)
! JPA Entity
Java Persistence API
![Page 18: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/18.jpg)
Java Persistence API
! EntityManager (javax.persistence)
(B) find / query (C) persist (D) clear / serialização (E) merge (F) remove
![Page 19: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/19.jpg)
Java Persistence API
! Persistence Unit
![Page 20: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/20.jpg)
EJB Enterprise JavaBeans
![Page 21: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/21.jpg)
Enterprise Java Beans ! Plataforma para criação de aplicações de negócio
portáveis, robustas e reutilizáveis usando a linguagem de programação Java;
! Componente para construir aplicações sem precisar reinventar uma série de recursos e serviços (transações, segurança, persistência);
! Modelo de alto nível para objetos distribuídos (computação distribuída);
! Pode ser utilizado em soluções Web e não Web;
![Page 22: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/22.jpg)
Enterprise Java Beans
EJB Session Bean
Java Web
Swing
Cliente WS
Web Browser
JVM + Container EE Rede Local
Componentes Negócio Compartilhados
![Page 23: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/23.jpg)
Enterprise Java Beans
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
![Page 24: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/24.jpg)
! Tipos de EJB: ! Session Bean
! Representa um processo de negócio ! Message-Driven Bean
! Trabalha de forma assíncrona
! Singleton Bean ! EJB introduzido na versão 3.1
! Entity Bean ! Representa um objeto persistente ! Definido pela especificação JPA
Enterprise Java Beans
![Page 25: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/25.jpg)
! Representa um processo de negócio (regra de negócio); ! @Stateless
! Não mantém estado de conversão com o cliente; ! Não tem compromisso de manter uma sessão; ! Não devemos utilizar atributos de negócio, somente atributos técnicos
em cache; ! É um EJB econômico;
! @Stateful ! Mantém estado de conversão com o cliente; ! Cada cliente terá uma instancia do EJB exclusiva, desde a criação até a
remoção; ! Podemos ter atributos de negócio com métodos getters e setters;
Session Bean
![Page 26: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/26.jpg)
Session Bean ! Podem ou não definir interface de acesso ! @LocalBean define EJBs sem interfaces ! Tipos de Interfaces
! Local (@Local) ! Somente acesso local (mesma JVM); ! Cliente pode ser um componente Web ou outro EJB; ! Localização não é transparente (não suporta clusterização).
! Remota (@Remote) ! Suporta acesso remoto (fora da JVM); ! Cliente pode ser um componente Web, outro EJB ou aplicação desktop; ! Transparência de localização (suporta clusterização).
![Page 27: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/27.jpg)
• EJB Lite ü Sub-conjunto de funcionalidades direcionadas para deploy dos EJBs no
container Java EE Web Profile (.war)
Enterprise Java Beans
EJB Lite EJB Full • Local Session Beans • CMT / BMT • Segurança Declarativa • Interceptors
• Message-Driven Beans (MDB) • Web Service Endpoints • 2.x / 3.x Remove View • Inter-operabilidade com RMI-IIOP • Timer service • Chamada assíncrona à metodos • 2.x Local View • CMP / BMP Entity Beans
![Page 28: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/28.jpg)
Enterprise Java Beans
! Empacotamento Simplificado ! Possibilita o deploy de componentes EJBs através de um .war ! Somente disponível para os EJB Lite ! ejb-jar.xml não é mais necessário
Java EE 5
Java EE 6
![Page 29: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/29.jpg)
Message-Driven Bean
! EJB que é acionado de forma assíncrona;
Síncrono Assíncrono
![Page 30: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/30.jpg)
Message-Driven Bean ! Existem dois tipos de destinos JMS
! Point-to-point (queue): uma mensagem enviada para a fila será consumida apenas por um cliente;
! Publish-subscriber (topic): uma mensagem pode ser recepcionada por múltiplos clientes;
![Page 31: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/31.jpg)
JSF JavaServer Faces
![Page 32: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/32.jpg)
JavaServer Faces
! Java ! Especificação ! Integração ! Ajax Nativo
![Page 33: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/33.jpg)
MVC - Dividir e conquistar
! Beleza vs Funcionamento ! Código Organizado ! Manutenção Fácil ! Sabe aonde achar o erro
![Page 34: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/34.jpg)
Principais Componentes J2EE Web Container J2EE EJB
Container
Controller
Model
View
Servlet
JavaBeans
Java Server Pages
Custom Tag
EJB
javax.faces
JSF e J2EE
![Page 35: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/35.jpg)
Página JSF
Tags: JSF HTML
Tags: JSF Core
Request
Managed Bean
Session
Managed Bean
Application
Managed Bean
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.
Páginas JSF
![Page 36: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/36.jpg)
JSF: principais componentes Pá
gina
JSF
fa
ces-
conf
ig.x
ml
Man
aged
Bea
n
![Page 37: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/37.jpg)
Facelets
![Page 38: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/38.jpg)
Integração
![Page 39: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/39.jpg)
Frameworks em JSF
! Basta baixar e usar
![Page 40: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/40.jpg)
CDI Contexts and Dependency Injection
![Page 41: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/41.jpg)
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)
![Page 42: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/42.jpg)
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 43: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/43.jpg)
CDI no Java EE
![Page 44: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/44.jpg)
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
![Page 45: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/45.jpg)
CDI Managed Beans
![Page 46: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/46.jpg)
Configuração CDI
![Page 47: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/47.jpg)
Hello World
![Page 48: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/48.jpg)
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 49: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/49.jpg)
Principais Recursos
! Injection Points ! Qualifiers ! Alternatives ! EL Names ! Producer Methods ! Java EE Resources ! Scopes and Contexts ! Interceptors ! Stereotypes ! Events
![Page 50: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/50.jpg)
Java EE History
J2EE 1.3 CMP, Connector Architecture
J2EE 1.4 Web Services Mgmt, Deployment, Async Connector
Java EE 5 Ease of Development, EJB 3, JPA, JSF, JAXB, JAX-WS, StAX, SAAJ
Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS
Web Profile Servlet 3, EJB 3.1 Lite
Java EE 7 JMS 2, Batch, TX, Concurrency, Interceptor, WebSocket, JSON
Web Profile JAX-RS 2
JAX-RPC, CMP/ BMP, JSR 88
![Page 51: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/51.jpg)
Top 10 no Java EE 6
! EJB packaging no WAR ! Type-safe deployment injection ! Deployment descriptors opcionais (web.xml, etc) ! Padronização do Facelets no JSF ! EJB em apenas uma classe ! Extensibilidade para Servlets e CDI ! CDI events ! EJBContainer API ! @Schedule baseado no modelo Cron ! Web Profile
![Page 52: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/52.jpg)
Java EE 7 Themes
![Page 53: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/53.jpg)
Java EE 7 Overview
Connector 1.6
Managed Beans 1.0 EJB 3.2
Servlet 3.1
Portable Extensions
JSF 2.2 JAX-RS 2.0
Bea
n Va
lidat
ion
1.1
JMS 2.0 JPA 2.1
EL 3.0
JTA 1.2
JSP 2.2
Interceptors 1.1 CDI 1.1 Common
Annotations 1.1
Updated Major Release
New
Concurrency Utilities (JSR 236)
Batch Applications (JSR 352)
Java API for JSON (JSR 353)
Java API for WebSocket (JSR 356)
![Page 54: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/54.jpg)
Java EE 7
! Por onde começar?
![Page 55: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/55.jpg)
Java EE 8.future(); ! JSON-B ! JCache ! More CDI/EJB alignment ! CDI.next() ! Cloud, PaaS, multitenancy/SaaS ! JMS.next()? ! JAX-RS.next()? ! Security? ! Modularity? ! NoSQL? ! Action-oriented Web framework/HTML 5?
![Page 56: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/56.jpg)
Perguntas e Respostas
?
![Page 57: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/57.jpg)
![Page 58: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/58.jpg)
Eventos
![Page 59: Serra StarTec 2013 - Java EE](https://reader033.vdocuments.us/reader033/viewer/2022052907/558fc6d91a28ab804e8b46d3/html5/thumbnails/59.jpg)
Como Colaborar
! Blog: ! http://gujavasc.org
! Facebok: ! https://facebook.com/groups/gujavasc
! Twitter ! https://twitter.com/gujavasc
! Google+ ! http://bit.ly/15c2QYQ
! Github ! https://github.com/gujavasc