gujavasc - desenvolvendo uma aplicação com java ee
DESCRIPTION
GUJavaSC - Desenvolvendo uma Aplicação com Java EETRANSCRIPT
![Page 1: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/1.jpg)
Desenvolvendo uma Aplicação com Java EE
![Page 2: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/2.jpg)
Agenda
Java Enterprise Edition (Java EE)
Java Persistence API (JPA)
Enterprise JavaBeans (EJB)
JavaServer Faces (JSF)
Contexts and Dependency Injection (CDI)
Demonstração
Novidades Java EE 7
Perguntas e Respostas
![Page 3: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/3.jpg)
Plataforma Java
A plataforma é dividida em três partes:Java Standard Edition (Java SE)
Base do Java que contém as principais APIs
Java Enterprise Editon (Java EE)Versão de Java para desenvolvimento de aplicações Web e enterprise que rodam em servidores padronizados
Java Micro Edition (Java ME)Redução da plataforma Standard para dispositivos móveis como PDA e celulares
![Page 4: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/4.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 5: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/5.jpg)
Java Enterprise Edition
![Page 6: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/6.jpg)
Java Enterprise Edition
Containers Java EE
![Page 7: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/7.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 8: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/8.jpg)
Profiles
![Page 9: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/9.jpg)
Profiles
![Page 10: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/10.jpg)
JPAJava Persistence API
![Page 11: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/11.jpg)
Java Persistence API
Primeira especificação (padrão) de mapeamento de objetos Java para base de dados relacional
Integração com outros frameworksHibernate é 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 12: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/12.jpg)
Java Persistence API
![Page 13: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/13.jpg)
JPA Entity
Java Persistence API
![Page 14: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/14.jpg)
Java Persistence API
EntityManager (javax.persistence)
(B) find / query(C) persist(D) clear / serialização(E) merge (F) remove
![Page 15: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/15.jpg)
Java Persistence API
Persistence Unit
![Page 16: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/16.jpg)
EJBEnterprise JavaBeans
![Page 17: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/17.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 18: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/18.jpg)
Enterprise Java Beans
EJBSession Bean
Java Web
Swing
Cliente WS
Web Browser
JVM + Container EERede Local
Componentes Negócio Compartilhados
![Page 19: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/19.jpg)
Enterprise Java Beans
EJBSession Bean
Se
gu
ran
ça
Co
ntr
ole
Tra
nsa
cio
na
l
Es
cala
bili
da
de
QueuesTopics
DataSources
Environment Entries
EJB
Infra Estrutura do Container
![Page 20: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/20.jpg)
Tipos de EJB:Session Bean
Representa um processo de negócio
Message-Driven BeanTrabalha de forma assíncrona
Singleton BeanEJB introduzido na versão 3.1
Entity BeanRepresenta um objeto persistente
Definido pela especificação JPA
Enterprise Java Beans
![Page 21: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/21.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;
@StatefulManté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 22: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/22.jpg)
Session Bean
Podem ou não definir interface de acesso
@LocalBean define EJBs sem interfaces
Tipos de InterfacesLocal (@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 23: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/23.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 24: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/24.jpg)
Enterprise Java Beans
Empacotamento SimplificadoPossibilita 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 25: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/25.jpg)
Message-Driven Bean
EJB que é acionado de forma assíncrona;
Síncrono Assíncrono
![Page 26: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/26.jpg)
Message-Driven BeanExistem 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 27: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/27.jpg)
JSFJavaServer Faces
![Page 28: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/28.jpg)
JavaServer Faces
Java
Especificação
Integração
Ajax Nativo
![Page 29: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/29.jpg)
MVC - Dividir e conquistar
Beleza vs Funcionamento
Código Organizado
Manutenção Fácil
Sabe aonde achar o erro
![Page 30: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/30.jpg)
Principais ComponentesJ2EE Web Container J2EE EJB
Container
Controller ModelView
Servlet JavaBeansJavaServerPages
CustomTag
EJB
javax.faces
JSF e J2EE
![Page 31: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/31.jpg)
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.
Páginas JSF
![Page 32: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/32.jpg)
JSF: principais componentes
Pág
ina
JSF
face
s-co
nfi
g.x
ml
Man
aged
Bea
n
![Page 33: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/33.jpg)
Facelets
![Page 34: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/34.jpg)
Integração
![Page 35: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/35.jpg)
Frameworks em JSF
• Basta baixar e usar
![Page 36: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/36.jpg)
CDIContexts and Dependency Injection
![Page 37: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/37.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 38: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/38.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 39: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/39.jpg)
CDI no Java EE 6
![Page 40: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/40.jpg)
CDI Managed Beans
•Nova definição para “beans•Instâncias são gerenciadas pelo container•Serviços disponíveis
Injeção de DependênciaCiclo de vidaInterceptorsEvents
![Page 41: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/41.jpg)
CDI Managed Beans
![Page 42: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/42.jpg)
Configuração CDI
![Page 43: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/43.jpg)
Hello World
![Page 44: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/44.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 45: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/45.jpg)
Principais Recursos
Injection Points Qualifiers Alternatives EL Names Producer Methods Java EE Resources Scopes and Contexts Interceptors Stereotypes Events
![Page 46: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/46.jpg)
Demonstração
![Page 47: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/47.jpg)
Novidades Java EE 7
![Page 48: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/48.jpg)
Java EE 7
• Por onde começar?
![Page 49: GUJavaSC - Desenvolvendo uma Aplicação com Java EE](https://reader035.vdocuments.site/reader035/viewer/2022062704/5562189ad8b42af2128b54a3/html5/thumbnails/49.jpg)
Perguntas e Respostas
?