GUJavaSC - Mini-curso Java EE
-
Upload
rodrigo-candido-da-silva -
Category
Software
-
view
438 -
download
2
description
Transcript of GUJavaSC - Mini-curso Java EE
![Page 1: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/1.jpg)
Mini-curso Java EE
![Page 2: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/2.jpg)
Sobre
Especialista Java Java Platform
Coordenador GUJavaSC http://gujavasc.org
Twitter @rcandidosilva
Personal http://rodrigocandido.me
![Page 3: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/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) Perguntas e Respostas
![Page 4: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/4.jpg)
Plataforma Java
![Page 5: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/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: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/6.jpg)
Java Everywhere
![Page 7: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/7.jpg)
Quais empresas usam Java
![Page 8: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/8.jpg)
Mercado
![Page 9: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/9.jpg)
Oportunidades
![Page 10: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/10.jpg)
JAVA EE
![Page 11: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/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: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/12.jpg)
Java Enterprise Edition
![Page 13: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/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: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/14.jpg)
Java EE Timeline
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 15: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/15.jpg)
Java EE 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 16: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/16.jpg)
Exercício
Criando um projeto Java EE
https://github.com/gujavasc/minicurso-javaee
![Page 17: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/17.jpg)
JSF JavaServer Faces
![Page 18: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/18.jpg)
JavaServer Faces
Java Especificação Integração Ajax Nativo
![Page 19: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/19.jpg)
MVC - Dividir e conquistar
Beleza vs Funcionamento Código Organizado Manutenção Fácil Sabe aonde achar o erro
![Page 20: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/20.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 21: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/21.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 22: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/22.jpg)
JSF: principais componentes Pá
gina
JSF
fa
ces-
conf
ig.x
ml
Man
aged
Bea
n
![Page 23: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/23.jpg)
Facelets
![Page 24: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/24.jpg)
Integração
![Page 25: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/25.jpg)
Frameworks em JSF
Basta baixar e usar
![Page 26: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/26.jpg)
Exercício
Desenvolvimento Web com JSF
https://github.com/gujavasc/minicurso-javaee
![Page 27: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/27.jpg)
JPA Java Persistence API
![Page 28: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/28.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 29: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/29.jpg)
Java Persistence API
![Page 30: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/30.jpg)
JPA Entity
Java Persistence API
![Page 31: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/31.jpg)
Java Persistence API
EntityManager (javax.persistence)
(B) find / query (C) persist (D) clear / serialização (E) merge (F) remove
![Page 32: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/32.jpg)
Java Persistence API
Persistence Unit
![Page 33: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/33.jpg)
Exercício
Implementando persistência com JPA
https://github.com/gujavasc/minicurso-javaee
![Page 34: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/34.jpg)
EJB Enterprise JavaBeans
![Page 35: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/35.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 36: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/36.jpg)
Enterprise Java Beans
EJB Session Bean
Java Web
Swing
Cliente WS
Web Browser
JVM + Container EE Rede Local
Componentes Negócio Compartilhados
![Page 37: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/37.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 38: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/38.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 39: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/39.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 40: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/40.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 41: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/41.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 42: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/42.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 43: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/43.jpg)
Message-Driven Bean
EJB que é acionado de forma assíncrona;
Síncrono Assíncrono
![Page 44: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/44.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 45: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/45.jpg)
Exercício
Implementando as regras de negócio com EJB
https://github.com/gujavasc/minicurso-javaee
![Page 46: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/46.jpg)
CDI Contexts and Dependency Injection
![Page 47: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/47.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 48: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/48.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 49: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/49.jpg)
CDI no Java EE
![Page 50: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/50.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 51: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/51.jpg)
CDI Managed Beans
![Page 52: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/52.jpg)
Configuração CDI
![Page 53: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/53.jpg)
Hello World
![Page 54: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/54.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 55: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/55.jpg)
Principais Recursos
Injection Points Qualifiers Alternatives EL Names Producer Methods Java EE Resources Scopes and Contexts Interceptors Stereotypes Events
![Page 56: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/56.jpg)
Exercício
Integrando as camadas da aplicação com CDI
https://github.com/gujavasc/minicurso-javaee
![Page 57: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/57.jpg)
Perguntas e Respostas
?
![Page 58: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/58.jpg)
![Page 59: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/59.jpg)
Iniciativas
Eventos mensais; Blog; Redes sociais; Listas de discussão; Organização de eventos; Projetos open source; Adopt an JSR; …
![Page 60: GUJavaSC - Mini-curso Java EE](https://reader033.fdocuments.us/reader033/viewer/2022042700/558fc8101a28ab654e8b47a9/html5/thumbnails/60.jpg)
Como Colaborar
Site: http://gujavasc.org
Twitter https://twitter.com/gujavasc
Github https://github.com/gujavasc
Facebok: http://facebook.com/groups/gujavasc